【正規表現道場の掟】
・言語不問
・質問も大歓迎。使用言語を書くのを忘れずに。
正規表現と関係ない話・質問は他スレへどうぞ。
前スレ
正規表現道場
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互換です。マルチバイトに対応していないのでその辺りに落し穴があるのかなと思うのですが。
40nobodyさん
2013/09/14(土) 19:42:16.21ID:QgtFjJm6 FireFoxでRSSリーダにFeedlyを使っています。
NGワードフィルターが正規表現なのですが教えて頂けないでしょうか。
"韓国"というキーワードをフィルタリングしたいです。
http://userscripts.org/scripts/show/172085
NGワードフィルターが正規表現なのですが教えて頂けないでしょうか。
"韓国"というキーワードをフィルタリングしたいです。
http://userscripts.org/scripts/show/172085
41nobodyさん
2013/09/15(日) 10:40:22.03ID:??? >>39
マッチしない場合があるとは思えないけど、一応マッチしない場合があると言った人に聞いてみれば?
まぁ、$_POST["value"]が送信されて来なければ話は別だけど・・
ちなみにそれは preg_match("/'/", $_POST["value"]) のようにシンプルに書くこともできる
マッチしない場合があるとは思えないけど、一応マッチしない場合があると言った人に聞いてみれば?
まぁ、$_POST["value"]が送信されて来なければ話は別だけど・・
ちなみにそれは preg_match("/'/", $_POST["value"]) のようにシンプルに書くこともできる
43nobodyさん
2013/09/15(日) 15:21:48.42ID:??? 2ch専ブラにおける2chmateのデバッグ用文字列のみの書き込みをNGにしたいです
2chMate 0.8.5.6 dev/HTC/HTL21/4.1.1
2chMate 0.8.5.4/SHARP/SBM003SH/2.3.4
↑こんなやつです
一応専ブラはjanestyleということでどなたか教えていただけませんでしょうか
2chMate 0.8.5.6 dev/HTC/HTL21/4.1.1
2chMate 0.8.5.4/SHARP/SBM003SH/2.3.4
↑こんなやつです
一応専ブラはjanestyleということでどなたか教えていただけませんでしょうか
44nobodyさん
2013/09/16(月) 04:52:23.59ID:V1KLg8Lz 韓|トンスル|ニダ|
レスを投稿する
ニュース
- 日本人の平均身長30年横ばい、中国・韓国は上昇 ネット「こんなに差が」いったいなぜ……? [バイト歴50年★]
- 《日本の世界遺産「正直がっかりした」ランキング》「面白さや感動はない」落胆続出の1位はドラマロケ地(週刊女性) [少考さん★]
- 伊集院光、ダウ90000蓮見が脚本担当回「クレヨンしんちゃん」に「腰が抜けるほどつまんない」 [muffin★]
- 【STARTO ENTERTAINMENT】M!LKの大躍進に藤島ジュリー景子氏が激怒か…『MAJ』受賞に不満で「今後うちの子たちは出さない」“憤慨”報道 [Ailuropoda melanoleuca★]
- 自民党 原資が国民の税金である「政党助成金」を自分あてに「寄付」17億円 2 [バイト歴50年★]
- 【野球】セ・リーグ S 7-9 T [9/22] 阪神マジック8 延長11回高寺が勝ち越し2ランホームラン! ヤクルト3連敗 [鉄チーズ烏★]
- 【高市速報】トランプ、イランと合意!戦争終結へ [219241683]
- 00:00:00.000
- 【悲報】お迎えのない空港に手を振る高市首相、世界で拡散 [431136663]
- なぜ日本人は「新車」を買い替えなくなったのか [303493227]
- 有識者「高市首相のエア手振りをバカにしてる人は外交の基本を知らないバカ」 [834922174]
- アメリカのドラマ、最後まで面白かった作品0(ゼロ)説 [955862909]