【正規表現道場の掟】
・言語不問
・質問も大歓迎。使用言語を書くのを忘れずに。
正規表現と関係ない話・質問は他スレへどうぞ。
前スレ
正規表現道場
http://kohada.2ch.net/test/read.cgi/php/1168450843/
正規表現道場 Part2
1nobodyさん
2012/09/19(水) 18:58:43.51ID:bdgNsY2f2012/09/20(木) 03:58:43.36ID:???
>>1乙
●過去スレ
正規表現道場@2ch
http://pc.2ch.net/test/read.cgi/php/996105815/
正規表現道場@2ch Part2
http://pc5.2ch.net/test/read.cgi/php/1038146241/
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
http://pc5.2ch.net/test/read.cgi/php/1069245758/
正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/
●過去スレのテンプレにあった参考サイトたち
Perlメモ
http://www.din.or.jp/~ohzaki/perl.htm
正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Regex::Diagram.pm
http://www.cc.rim.or.jp/~midorin/mad-p/RegexDiagram.html
正規表現
http://www.cc.rim.or.jp/~midorin/mad-p/perl/benkyou/PRC2kRegex/
UNIX正規表現入門
http://web.archive.org/web/20021219021503/http://www01.u-page.so-net.ne.jp/jc4/hiroyuki/rex_index.html
Regular Expression(Riue ちゃんの正規表現講座)
http://www.sixnine.net/regexp/
ほとんどは↓のリンク集にまとまっています。
正規表現/文字コード最新リンク2005
http://www2.famille.ne.jp/~akio1998/l_grep.html (Not Found)
●過去スレ
正規表現道場@2ch
http://pc.2ch.net/test/read.cgi/php/996105815/
正規表現道場@2ch Part2
http://pc5.2ch.net/test/read.cgi/php/1038146241/
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
http://pc5.2ch.net/test/read.cgi/php/1069245758/
正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/
●過去スレのテンプレにあった参考サイトたち
Perlメモ
http://www.din.or.jp/~ohzaki/perl.htm
正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Regex::Diagram.pm
http://www.cc.rim.or.jp/~midorin/mad-p/RegexDiagram.html
正規表現
http://www.cc.rim.or.jp/~midorin/mad-p/perl/benkyou/PRC2kRegex/
UNIX正規表現入門
http://web.archive.org/web/20021219021503/http://www01.u-page.so-net.ne.jp/jc4/hiroyuki/rex_index.html
Regular Expression(Riue ちゃんの正規表現講座)
http://www.sixnine.net/regexp/
ほとんどは↓のリンク集にまとまっています。
正規表現/文字コード最新リンク2005
http://www2.famille.ne.jp/~akio1998/l_grep.html (Not Found)
2012/09/22(土) 03:58:02.23ID:???
|:::ハ:.:.:.:.:.:i:.:.:i.:.:i./.:.://メノ 左ォ}::::ノ::ノノ
|::::i:::';::::::::l、::i:::ハ:/,ィチ爪' {ヒチ'!::イイ
|ハ::::::ヾ::::ハ 'Vリ ゙´ {、込ソ ゛″!:::i:.:l
|:.::ト、:.:.:ヾ:.ハーi| :::::::: 〉 ノ::::i::.|
{:.:.ト、ヾ.:.:.:ヾハ lト、 _, , イ:.:.:.:i.:ハ
ヾ::ヽゞ、\.::.\!! ヽ、. ´ /!.::!.:.i:.:!:.!:l >>1乙ぱい
, '" ヾ\ \:::::::::k /` ー ' `メ'リ:.:.ノ.ノ:ノノ
/ 川 リllVハ. ( i `\ ,イイ// //
/ |l ̄`ヽ ノ `メ、
,/ {:} `ー'- ニ_
,/ _∠ |l \ , \
/ _ ,. イ´: |l \ ,λ
/ -‐‐‐-<´ .! / |l ' , _,ィ'ンy}
〈 \ .ノ`ー斗rェ,,_,_,_|l ,.ir'彡イy-´ !
`ヽ、 ` ' <._ {jt=t-t-ミ`^Yーrヘr-彡'水k} !:} .ノ
` ー- .._ ` -ヽ. l`亠^{:i ̄ {:リ |ハ ノノ/ノ
_,. -‐ '  ̄ ´ ̄` ー- 、 \{{ {:l {:i ノ_,ィニ_ン´
// `ヽ 、\ \ {:l {∠ニァ--'
/ / `ヽミニ>ァ┴ '´
/\V| /
./ ヾ.、 ,. ' ´
2012/10/15(月) 10:43:51.98ID:???
>>2
正規表現最新リンク集2005
http://web.archive.org/web/20100410230942/http://www2.famille.ne.jp/~akio1998/l_grep.html
個人名載ってるしこのまま外しちゃってもいいかもしれない
正規表現最新リンク集2005
http://web.archive.org/web/20100410230942/http://www2.famille.ne.jp/~akio1998/l_grep.html
個人名載ってるしこのまま外しちゃってもいいかもしれない
5nobodyさん
2012/10/19(金) 12:38:26.99ID:ZQDqri43 過疎スレ状態になっているっぽいですが質問宜しいでしょうか?
2012/10/19(金) 19:53:20.37ID:???
質問は?
2012/10/30(火) 16:10:01.92ID:???
>>5の人とは別人ですが質問がありますのでお願いします
拒否したいワード例
・ばか
・ばっかやろー
・ばーか
掲示板の拒否ワード機能を使って上のような言葉を
^(ばか|ばっか|ばーか)
このようにまとめているのですが、
もっと効率よくまとめられるような気がしています
^ば(0または任意の1文字)か
以上のように、
まとめることは可能でしょうか?
拒否したいワード例
・ばか
・ばっかやろー
・ばーか
掲示板の拒否ワード機能を使って上のような言葉を
^(ばか|ばっか|ばーか)
このようにまとめているのですが、
もっと効率よくまとめられるような気がしています
^ば(0または任意の1文字)か
以上のように、
まとめることは可能でしょうか?
2012/10/30(火) 17:54:51.44ID:???
ば.?か
ばいか(売価)とかも入るけどねー
ばいか(売価)とかも入るけどねー
10nobodyさん
2012/10/30(火) 21:28:35.04ID:??? 〜ばかり
ばっかり
ばんから
ばっかり
ばんから
128
2012/10/31(水) 12:31:50.64ID:??? まさに、>>9のようにまとめるられる書式を知りたかったのです!が…
皆さんご指摘のことを読むと確かにおっしゃるとおりですよねー
ば.?か、のような書式で運用できるかできないか、
掲示板のログとにらめっこしてみることにします
ともあれ、お答えくださった皆さん、とても参考になり助かりました
ありがとうございました
皆さんご指摘のことを読むと確かにおっしゃるとおりですよねー
ば.?か、のような書式で運用できるかできないか、
掲示板のログとにらめっこしてみることにします
ともあれ、お答えくださった皆さん、とても参考になり助かりました
ありがとうございました
13nobodyさん
2013/01/29(火) 08:17:24.91ID:??? せめて同じ文字はまとめるか
^(ば(か|っか|ーか))
^(ば(か|っか|ーか))
14nobodyさん
2013/02/10(日) 11:51:32.02ID:m9q+FHWZ パスワードの登録で
半角アルファベットと半角数字の組み合わせで8文字以上
という条件を考えてるんですが、以下じゃダメですよね?
preg_match('/^[a-zA-z0-9]{8,}$/', $s);
アルファベットと数字の組み合わせ(アルファベットも数字もどちらもある)とするには
どうしたら良いでしょうか?
半角アルファベットと半角数字の組み合わせで8文字以上
という条件を考えてるんですが、以下じゃダメですよね?
preg_match('/^[a-zA-z0-9]{8,}$/', $s);
アルファベットと数字の組み合わせ(アルファベットも数字もどちらもある)とするには
どうしたら良いでしょうか?
16nobodyさん
2013/02/13(水) 23:30:20.10ID:??? /^(?=(.*\d[a-zA-Z].*)|(.*[a-zA-Z]\d.*))\w{8,}$/
数字英字 もしくは 英字数字という並びが存在する英数字8文字以上
数字英字 もしくは 英字数字という並びが存在する英数字8文字以上
17nobodyさん
2013/02/14(木) 00:13:02.40ID:??? >>16を1回チェックするのと、
>>14と「英字を含む」「数字を含む」の計3回チェックするのとで、どのくらい
ここまで書いたところで自分でいろいろ試してみた。
$s = '3066058kczgr9784685fwn874fos847fos8djtkcrzu9q58nzfc';
for($i=0; $i<1000000 && preg_match('/^(?=(.*\d[a-zA-Z].*)|(.*[a-zA-Z]\d.*))\w{8,}$/', $s); $i++){} //2.3948659897 sec.
for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && preg_match('/[a-zA-z]/', $s) && preg_match('/[0-9]/', $s); $i++){} //5.7406949997 sec.
for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && !preg_match('/^[0-9]+$/', $s); $i++){} //3.9960801601 sec.
for($i=0; $i<1000000 && 8<=strlen($s) && ctype_alnum($s) && !ctype_digit($s); $i++){} //2.2285568714 sec.
$s = '1';
for($i=0; $i<1000000 && preg_match('/^(?=(.*\d[a-zA-Z].*)|(.*[a-zA-Z]\d.*))\w{8,}$/', $s); $i++){} //0.0000748634 sec.
for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && preg_match('/[a-zA-z]/', $s) && preg_match('/[0-9]/', $s); $i++){} //0.0000240803 sec.
for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && !preg_match('/^[0-9]+$/', $s); $i++){} //0.0000209808 sec.
for($i=0; $i<1000000 && 8<=strlen($s) && ctype_alnum($s) && !ctype_digit($s); $i++){} //0.0000181198 sec.
おもしろかった。
>>14と「英字を含む」「数字を含む」の計3回チェックするのとで、どのくらい
ここまで書いたところで自分でいろいろ試してみた。
$s = '3066058kczgr9784685fwn874fos847fos8djtkcrzu9q58nzfc';
for($i=0; $i<1000000 && preg_match('/^(?=(.*\d[a-zA-Z].*)|(.*[a-zA-Z]\d.*))\w{8,}$/', $s); $i++){} //2.3948659897 sec.
for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && preg_match('/[a-zA-z]/', $s) && preg_match('/[0-9]/', $s); $i++){} //5.7406949997 sec.
for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && !preg_match('/^[0-9]+$/', $s); $i++){} //3.9960801601 sec.
for($i=0; $i<1000000 && 8<=strlen($s) && ctype_alnum($s) && !ctype_digit($s); $i++){} //2.2285568714 sec.
$s = '1';
for($i=0; $i<1000000 && preg_match('/^(?=(.*\d[a-zA-Z].*)|(.*[a-zA-Z]\d.*))\w{8,}$/', $s); $i++){} //0.0000748634 sec.
for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && preg_match('/[a-zA-z]/', $s) && preg_match('/[0-9]/', $s); $i++){} //0.0000240803 sec.
for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && !preg_match('/^[0-9]+$/', $s); $i++){} //0.0000209808 sec.
for($i=0; $i<1000000 && 8<=strlen($s) && ctype_alnum($s) && !ctype_digit($s); $i++){} //0.0000181198 sec.
おもしろかった。
19nobodyさん
2013/03/09(土) 22:12:30.87ID:??? ^([a-z]|[A-Z]|[0-9]){8,}$
はダメ?
はダメ?
20nobodyさん
2013/03/09(土) 23:24:50.86ID:??? ダメ
21nobodyさん
2013/03/10(日) 23:50:57.56ID:???22nobodyさん
2013/03/18(月) 20:02:10.97ID:XSCUuGgi すっごい初歩的だったらすまそ
http://www.rider-n.sakura.ne.jp/regexp/regexp.php
で試す限りはうまくいくんだけどPHP上でうまくいかない。
スクリプト SJIS
マッチング文字列 SJIS
PHP内部文字エンコ SJIS
の環境下で
【サッカー】xxxxx【野球】
で最初のサッカーだけをマッチングしたいので
/^【([^】])】/i
としているんだけど、サッカーの時はマッチしない。
【テニス】xxxxx【卓球】ならちゃんとテニスがマッチする。
なんで?(´・ω・`)
http://www.rider-n.sakura.ne.jp/regexp/regexp.php
で試す限りはうまくいくんだけどPHP上でうまくいかない。
スクリプト SJIS
マッチング文字列 SJIS
PHP内部文字エンコ SJIS
の環境下で
【サッカー】xxxxx【野球】
で最初のサッカーだけをマッチングしたいので
/^【([^】])】/i
としているんだけど、サッカーの時はマッチしない。
【テニス】xxxxx【卓球】ならちゃんとテニスがマッチする。
なんで?(´・ω・`)
23nobodyさん
2013/03/18(月) 20:21:31.67ID:???24nobodyさん
2013/03/18(月) 22:12:52.90ID:XSCUuGgi25nobodyさん
2013/03/19(火) 00:22:00.75ID:??? mb_regex_encoding("sjis");
mb_ereg ("^【([^】]+)】" ,$txt,$ret);
pregはSJIS使えません
mb_ereg ("^【([^】]+)】" ,$txt,$ret);
pregはSJIS使えません
27nobodyさん
2013/05/16(木) 11:13:37.06ID:??? javascriptでの正規表現で質問があります。
/^(?:(?:http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)*$/
上記はURLをチェックする簡単な正規表現だと思うのですが
そのURLがRSSかどうかチェックする正規表現にしたいのです
RSSの拡張子は .rss .rdf .xml です。
URLの最後の拡張子にこの文字列が入ってるかチェック出来るようにしたいのですが
どうすればいいでしょうか?
お願いします。
/^(?:(?:http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)*$/
上記はURLをチェックする簡単な正規表現だと思うのですが
そのURLがRSSかどうかチェックする正規表現にしたいのです
RSSの拡張子は .rss .rdf .xml です。
URLの最後の拡張子にこの文字列が入ってるかチェック出来るようにしたいのですが
どうすればいいでしょうか?
お願いします。
28nobodyさん
2013/05/16(木) 11:28:59.91ID:??? 最後をこれに差し替え
\.(rss|rdf|xml)$/
\.(rss|rdf|xml)$/
29nobodyさん
2013/05/16(木) 11:38:31.44ID:??? >>28
レスありがとうございます
ただこれに差し替えるだけだと
http://www.example.com/.rss
これも正常として判断されてしまうのですがどうしたら良いでしょうか?
よろしくお願いします。
レスありがとうございます
ただこれに差し替えるだけだと
http://www.example.com/.rss
これも正常として判断されてしまうのですがどうしたら良いでしょうか?
よろしくお願いします。
30nobodyさん
2013/05/16(木) 11:47:36.80ID:??? [^\\/:,;*?"<>|]\.(rss|rdf|xml)$
32nobodyさん
2013/07/20(土) NY:AN:NY.ANID:75R8ikZF PHPのpregでの正規表現について質問です。
<a href="http://www.test.jp/" title="test"><img src="test.png" alt="ALT" title="TITLE" /></a>
上記のようなHTMLを正規表現でヒットさせ、
<li>TITLE</li>
に変換させたいのですが、正規表現ではどう表したらいいのでしょうか?
<a href="http://www.test.jp/" title="test"><img src="test.png" alt="ALT" title="TITLE" /></a>
上記のようなHTMLを正規表現でヒットさせ、
<li>TITLE</li>
に変換させたいのですが、正規表現ではどう表したらいいのでしょうか?
33nobodyさん
2013/07/21(日) NY:AN:NY.ANID:??? 保守
34nobodyさん
2013/07/25(木) NY:AN:NY.ANID:2TH+2Iiw 正規表現で解決できるのではと思い、こちらで質問させてください。
"ver.2 test.Test"という文字列を"ver.2 test. Test"のように
ピリオドの次の文字が大文字のときに限り半角スペースを挿入したいのですが
良い方法はないでしょうか?
"ver.2 test.Test"という文字列を"ver.2 test. Test"のように
ピリオドの次の文字が大文字のときに限り半角スペースを挿入したいのですが
良い方法はないでしょうか?
36nobodyさん
2013/07/25(木) NY:AN:NY.ANID:??? せっかくなのでその正規表現を書いておきますねくらいの気持ちが必要だ。
38nobodyさん
2013/09/06(金) 20:12:17.12ID:??? >>32
見ての通り超手抜きだけど例の通りか属性値のダブルクォートが無いぐらいならこれで大丈夫
検索文字列: /^(.+<img.+title=\")(.+)(\" \/><\/a>)$/
置換文字列: <li>$2</li>
http://regex101.com/r/qI6aG4
> PHPのpregでの正規表現
実はPHP分からないんだけど↓みたいな感じ?w
preg_replace("/^(.+<img.+title=\")(.+)(\" \/><\/a>)$/i", "<li>$2</li>", $input_lines);
見ての通り超手抜きだけど例の通りか属性値のダブルクォートが無いぐらいならこれで大丈夫
検索文字列: /^(.+<img.+title=\")(.+)(\" \/><\/a>)$/
置換文字列: <li>$2</li>
http://regex101.com/r/qI6aG4
> PHPのpregでの正規表現
実はPHP分からないんだけど↓みたいな感じ?w
preg_replace("/^(.+<img.+title=\")(.+)(\" \/><\/a>)$/i", "<li>$2</li>", $input_lines);
39nobodyさん
2013/09/14(土) 18:05:14.35ID:0qKO1mtd 質問です。
PHP5で
preg_match ("/.*'.*/s", $_POST["value"])
としたときにvalueに「'」があってもマッチしない場合があるらしいのですがどういう文字列の場合でしょうか?
preg_matchはPCRE関数でPerl互換です。マルチバイトに対応していないのでその辺りに落し穴があるのかなと思うのですが。
PHP5で
preg_match ("/.*'.*/s", $_POST["value"])
としたときにvalueに「'」があってもマッチしない場合があるらしいのですがどういう文字列の場合でしょうか?
preg_matchはPCRE関数でPerl互換です。マルチバイトに対応していないのでその辺りに落し穴があるのかなと思うのですが。
レスを投稿する
ニュース
- 【新潟】「作れば赤字」米価大幅下落でコメ農家窮地に 新米コシヒカリ販売価格が前年より2000円安 過去最大の“コメ余り” [ぐれ★]
- 「ポリエステル」がZ世代の侮辱語に。TikTokで広がる意味とは? [少考さん★]
- 55歳俳優“勇ましい病”に言及し「病気の国家」と投稿「ただただ勇ましいことを言う人がいる」 元ほっしゃん。・星田英利 [少考さん★]
- 「袋麺の王だと思ってる」 男性が選ぶ“麺がうまい袋麺シリーズ”1位に「下手なお店よりおいしいと思います」 [パンナ・コッタ★]
- 「解党」の中道改革連合、交付金満額受領に批判集中…最終的に新党「民主改革の会」が引き継ぐ可能性も [煮卵★]
- 自動運転への8兆円投資が187兆円の経済効果? 「高市成長戦略」が依拠する“非現実的なリターン試算”の無責任 [煮卵★]
- 【悲報】高市首相は、トランプ大統領との会談に明確なメッセージを携えて臨む。それは「お金」だ。 [431136663]
- ディズニー家族4人で「10万円」の時代へ、値上げ相次ぐ中でUSJは『子ども無料』 [567637504]
- 【悲報】ONE OK ROCKのtaka、エドシーランを擁護して世界で炎上、全てを失う [124690655]
- 【速報】RTX6090、2027年上期に発売へ!!! [841411289]
- 【悲報】40歳独身女性狂う「結婚もできないし、仕事もつまらない。趣味もない。このまま死ぬまで50年。何を楽しみに生きればいいの? [257926174]
- トランプ大統領、「ウクライナがロシア軽油施設を攻撃するから、米国の軽油価格が上昇している。ゼレンスキーは攻撃を中止しろ」 [147827849]