正規表現道場 Part2 (393レス)
1-

1
(8): 2012/09/19(水)18:58 ID:bdgNsY2f(1) AAS
【正規表現道場の掟】

・言語不問

・質問も大歓迎。使用言語を書くのを忘れずに。

正規表現と関係ない話・質問は他スレへどうぞ。

前スレ
正規表現道場
2chスレ:php
2
(4): 2012/09/20(木)03:58 ID:??? AAS
>>1

●過去スレ
正規表現道場@2ch
 2chスレ:php
正規表現道場@2ch Part2
 2chスレ:php
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
 2chスレ:php
正規表現道場@2ch Part4
 2chスレ:php

●過去スレのテンプレにあった参考サイトたち
Perlメモ
 外部リンク[htm]:www.din.or.jp
正規表現メモ
 外部リンク[html]:www.kt.rim.or.jp
Regex::Diagram.pm
 外部リンク[html]:www.cc.rim.or.jp
正規表現
 外部リンク:www.cc.rim.or.jp
UNIX正規表現入門
 外部リンク[html]:web.archive.org
Regular Expression(Riue ちゃんの正規表現講座)
 外部リンク:www.sixnine.net

ほとんどは↓のリンク集にまとまっています。
正規表現/文字コード最新リンク2005
 外部リンク[html]:www2.famille.ne.jp (Not Found)
3
(1): 2012/09/22(土)03:58 ID:??? AAS
AA省
4: 2012/10/15(月)10:43 ID:??? AAS
>>2
正規表現最新リンク集2005
外部リンク[html]:web.archive.org

個人名載ってるしこのまま外しちゃってもいいかもしれない
5
(1): 2012/10/19(金)12:38 ID:ZQDqri43(1) AAS
過疎スレ状態になっているっぽいですが質問宜しいでしょうか?
6: 2012/10/19(金)12:44 ID:??? AAS
>>1
7: 2012/10/19(金)19:53 ID:??? AAS
質問は?
8
(2): 2012/10/30(火)16:10 ID:??? AAS
>>5の人とは別人ですが質問がありますのでお願いします

拒否したいワード例
・ばか
・ばっかやろー
・ばーか

掲示板の拒否ワード機能を使って上のような言葉を
 ^(ばか|ばっか|ばーか)
このようにまとめているのですが、
もっと効率よくまとめられるような気がしています

 ^ば(0または任意の1文字)か
以上のように、
まとめることは可能でしょうか?
9
(1): 2012/10/30(火)17:54 ID:??? AAS
ば.?か

ばいか(売価)とかも入るけどねー
10
(1): 2012/10/30(火)21:28 ID:??? AAS
〜ばかり
ばっかり
ばんから
11
(1): 2012/10/31(水)08:02 ID:??? AAS
ばんかい
バイカム

こういうのは>>8の指定の方が間違いがないね
12
(1): 8 2012/10/31(水)12:31 ID:??? AAS
まさに、>>9のようにまとめるられる書式を知りたかったのです!が…
皆さんご指摘のことを読むと確かにおっしゃるとおりですよねー

ば.?か、のような書式で運用できるかできないか、
掲示板のログとにらめっこしてみることにします

ともあれ、お答えくださった皆さん、とても参考になり助かりました
ありがとうございました
13
(2): 2013/01/29(火)08:17 ID:??? AAS
せめて同じ文字はまとめるか
^(ば(か|っか|ーか))
14
(3): 2013/02/10(日)11:51 ID:m9q+FHWZ(1) AAS
パスワードの登録で
半角アルファベットと半角数字の組み合わせで8文字以上
という条件を考えてるんですが、以下じゃダメですよね?

preg_match('/^[a-zA-z0-9]{8,}$/', $s);

アルファベットと数字の組み合わせ(アルファベットも数字もどちらもある)とするには
どうしたら良いでしょうか?
15
(1): 2013/02/10(日)12:46 ID:??? AAS
>>14みたいな正規表現のちょっとしたテクニック集とかどっかにまとまってないかね?
16
(1): 2013/02/13(水)23:30 ID:??? AAS
/^(?=(.*\d[a-zA-Z].*)|(.*[a-zA-Z]\d.*))\w{8,}$/

数字英字 もしくは 英字数字という並びが存在する英数字8文字以上
17: 2013/02/14(木)00:13 ID:??? AAS
>>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.

おもしろかった。
18: 2013/03/04(月)01:35 ID:??? AAS
>>13
これはひどい
19
(1): 2013/03/09(土)22:12 ID:??? AAS
^([a-z]|[A-Z]|[0-9]){8,}$

はダメ?
20: 2013/03/09(土)23:24 ID:??? AAS
ダメ
21: 2013/03/10(日)23:50 ID:??? AAS
>>19
大文字と小文字を区別したいってことなら

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9]{8,}$

でおk
22
(2): 2013/03/18(月)20:02 ID:XSCUuGgi(1/2) AAS
すっごい初歩的だったらすまそ
外部リンク[php]:www.rider-n.sakura.ne.jp
で試す限りはうまくいくんだけどPHP上でうまくいかない。

スクリプト SJIS
マッチング文字列 SJIS
PHP内部文字エンコ SJIS
の環境下で

【サッカー】xxxxx【野球】

で最初のサッカーだけをマッチングしたいので
/^【([^】])】/i
としているんだけど、サッカーの時はマッチしない。
【テニス】xxxxx【卓球】ならちゃんとテニスがマッチする。

なんで?(´・ω・`)
23
(1): 2013/03/18(月)20:21 ID:??? AAS
>>22
それだとテニスもマッチしないはずだが
[^】] は「 】」以外の1文字ってことになる
それとShift_JISなんて捨ててUTF-8使おうぜ
24: 2013/03/18(月)22:12 ID:XSCUuGgi(2/2) AAS
>>23
すません、[^】]+です。
SJISで何とか…
25: 2013/03/19(火)00:22 ID:??? AAS
mb_regex_encoding("sjis");
mb_ereg ("^【([^】]+)】" ,$txt,$ret);

pregはSJIS使えません
26: 2013/03/24(日)00:53 ID:??? AAS
>>22
文字列をアスキーコードに変換してから検索しろ
27: 2013/05/16(木)11:13 ID:??? AAS
javascriptでの正規表現で質問があります。

/^(?:(?:http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)*$/

上記はURLをチェックする簡単な正規表現だと思うのですが
そのURLがRSSかどうかチェックする正規表現にしたいのです

RSSの拡張子は .rss .rdf .xml です。

URLの最後の拡張子にこの文字列が入ってるかチェック出来るようにしたいのですが
どうすればいいでしょうか?

お願いします。
28
(1): 2013/05/16(木)11:28 ID:??? AAS
最後をこれに差し替え
\.(rss|rdf|xml)$/
29: 2013/05/16(木)11:38 ID:??? AAS
>>28
レスありがとうございます
ただこれに差し替えるだけだと

外部リンク[rss]:www.example.com

これも正常として判断されてしまうのですがどうしたら良いでしょうか?

よろしくお願いします。
30
(1): 2013/05/16(木)11:47 ID:??? AAS
[^\\/:,;*?"<>|]\.(rss|rdf|xml)$
31: 2013/05/17(金)09:33 ID:??? AAS
>>30
お礼遅くなってすいません
ありがとうございます!
うまくいきました!
32
(1): 2013/07/20(土) NY:AN:NY.AN ID:75R8ikZF(1) AAS
PHPのpregでの正規表現について質問です。

<a href="外部リンク:www.test.jp title="test"><img src="test.png" alt="ALT" title="TITLE" /></a>

上記のようなHTMLを正規表現でヒットさせ、

<li>TITLE</li>

に変換させたいのですが、正規表現ではどう表したらいいのでしょうか?
33: 2013/07/21(日) NY:AN:NY.AN ID:??? AAS
保守
34
(2): 2013/07/25(木) NY:AN:NY.AN ID:2TH+2Iiw(1) AAS
正規表現で解決できるのではと思い、こちらで質問させてください。

"ver.2 test.Test"という文字列を"ver.2 test. Test"のように
ピリオドの次の文字が大文字のときに限り半角スペースを挿入したいのですが
良い方法はないでしょうか?
35: 34 2013/07/25(木) NY:AN:NY.AN ID:??? AAS
>>34です。
正規表現のグループ化を用いることで解決できました。
安易に質問を投稿してしまい申し訳ございませんでした。
36: 2013/07/25(木) NY:AN:NY.AN ID:??? AAS
せっかくなのでその正規表現を書いておきますねくらいの気持ちが必要だ。
37: 2013/07/25(木) NY:AN:NY.AN ID:??? AAS
>>34
preg_replace('/\.(?=[A-Z])/','. ',$str);
38: 2013/09/06(金)20:12 ID:??? AAS
>>32
見ての通り超手抜きだけど例の通りか属性値のダブルクォートが無いぐらいならこれで大丈夫

検索文字列: /^(.+<img.+title=\")(.+)(\" \/><\/a>)$/
置換文字列: <li>$2</li>
外部リンク:regex101.com

> PHPのpregでの正規表現

実はPHP分からないんだけど↓みたいな感じ?w

preg_replace("/^(.+<img.+title=\")(.+)(\" \/><\/a>)$/i", "<li>$2</li>", $input_lines);
39
(2): 2013/09/14(土)18:05 ID:0qKO1mtd(1) AAS
質問です。
PHP5で
preg_match ("/.*'.*/s", $_POST["value"])
としたときにvalueに「'」があってもマッチしない場合があるらしいのですがどういう文字列の場合でしょうか?
preg_matchはPCRE関数でPerl互換です。マルチバイトに対応していないのでその辺りに落し穴があるのかなと思うのですが。
40
(1): 2013/09/14(土)19:42 ID:QgtFjJm6(1) AAS
FireFoxでRSSリーダにFeedlyを使っています。
NGワードフィルターが正規表現なのですが教えて頂けないでしょうか。
"韓国"というキーワードをフィルタリングしたいです。

外部リンク:userscripts.org
41
(1): 2013/09/15(日)10:40 ID:??? AAS
>>39
マッチしない場合があるとは思えないけど、一応マッチしない場合があると言った人に聞いてみれば?
まぁ、$_POST["value"]が送信されて来なければ話は別だけど・・

ちなみにそれは preg_match("/'/", $_POST["value"]) のようにシンプルに書くこともできる
42: 2013/09/15(日)10:43 ID:??? AAS
>>40
使ったこと無いけど、"韓国"だったら完全一致なのでそのまま正規表現使わずに書けると思うけど
43: 2013/09/15(日)15:21 ID:??? AAS
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ということでどなたか教えていただけませんでしょうか
44: 2013/09/16(月)04:52 ID:V1KLg8Lz(1) AAS
韓|トンスル|ニダ|
45: 39 2013/09/16(月)18:13 ID:??? AAS
>>41
マッチしない場合は無いようでした。
phpの設定の問題でpreg_matchがマッチできずfalseを返す場合があるらしいです。
46
(2): 2013/09/19(木)16:03 ID:XGTpu0pg(1) AAS
最近2ちゃんで同じ文字列を数行繰り返す荒らしがいますが

最近2ちゃんで同じ文字列を数行繰り返す荒らしがいますが

最近2ちゃんで同じ文字列を数行繰り返す荒らしがいますが

↑こんな感じです
改行を挟まない場合もあります

Janeでこれをあぼーんしたいんですが
同じ文字列が数行続いたかを調べられる正規表現はありませんか
47
(1): 2013/09/19(木)19:40 ID:??? AAS
>>46
1行文の2連投
外部リンク[html]:thinkarc.blogspot.jp

んでこれ以上は下で NGEx.txtを晒すスレ4
外部リンク:mattari.plusvip.jp
48: 46 2013/09/19(木)23:50 ID:??? AAS
>>47
ありがとうございます
無事あぼーん出来ました
直前の自分のレスも消えてます
49
(2): 2013/09/22(日)00:52 ID:PBzP1rLU(1) AAS
下の文字列から最短で「NN are_VBP strongly_RB supported_VBN」を抜き出すのに
NN\s.*?VBNでうまくいかない(最長マッチが返ってくる)のですが、何が悪いのでしょうか?

In_IN Israel_NNP ,_, freedom_NN of_IN opinion_NN and_CC risk_NN taking_NN are_VBP strongly_RB supported_VBN ._.
50
(3): 2013/09/22(日)02:25 ID:V8cai0+K(1) AAS
それだと最初に出現するNN\s位置からマッチングが始まって、
最短で後続するVBNまでがマッチする

こうじゃないか?
.*(NN\s.*?VBN)
51: 49 2013/09/22(日)08:30 ID:??? AAS
>>50
ありがとうございます。
しかし、、、.*(NN\s.*?VBN) だと、今度は、行全体がマッチしてしまいます。。。
ムムム
52
(1): 2013/09/22(日)14:36 ID:??? AAS
NN arからじゃ駄目なん?
NNじゃ>>50の言うとおり最初のNNからマッチするんだし
53
(1): 49 2013/09/22(日)15:17 ID:??? AAS
>>50
>>52
ありがとうござしました。
プログラム板でも聞いてみたところ、下のような表現を教えてもらいました。
NN\s((?!NN).)*?VBN
54: 2013/09/22(日)20:33 ID:??? AAS
>>53
結果教えてくれてありがと
前方参照否定位置指定子かー

NNが来ないNN空白〜VBNにマッチするのね
55: 2013/09/23(月)15:50 ID:??? AAS
ええい、お前はもう下がっておれ
webprog板の面汚しめ
56: 2013/09/23(月)21:29 ID:??? AAS
php使いが鼻で笑われる所以(´・ω・`)
57
(1): 2013/09/23(月)21:37 ID:??? AAS
(´・ω・`)←この顔文字、3年ぶりぐらいに見たw
58: 2013/09/25(水)21:08 ID:??? AAS
>>57
女友達いないの?
59: 2013/10/07(月)05:09 ID:??? AAS
PHP5.4です。
'hoge山田
太郎2様hoge'
(2の数字は色々変わります)
の中から'太郎2様'をマッチさせたいのですが
/山田[\s\S]*?(/太郎.*?様/u)様/u
でうまくいかないです。どなたか教えて下さいまし。。。
60
(1): 2013/10/07(月)15:52 ID:??? AAS
太郎\d+様
61: 2013/10/07(月)16:36 ID:??? AAS
>>60
なんとー
ありがとうございます
62: 2013/10/09(水)23:36 ID:??? AAS
行の最後に[a-z0-9]が9文字、はどう指定するんでしょうか
([a-z0-9]){9}$
$(([a-z0-9]){9})
と思ったのですが、うまくいかないです。
63: 2013/10/10(木)10:38 ID:??? AAS
[a-z0-9]{9}$
64: 2013/10/10(木)11:09 ID:??? AAS
ありがとうございます!
65: 2013/10/31(木)18:34 ID:GYE7WPbH(1) AAS
ab(cd)efg
とある時
(.*?)
で"(cd)"は返ってきますが、
"cd" とカッコの中身だけを取りたい時はどうすればいいでしょうか
"(" と ")" を置換するしかないですか?
66: 2013/10/31(木)18:49 ID:??? AAS
言語、、つか環境は?
67: 2013/10/31(木)21:18 ID:odoD21Ul(1) AAS
エスケープしろよ
68: 2013/11/29(金)11:12 ID:??? AAS
PHP5で
パターンは、/<a>.*<\/a>/
対象文字列は、<a>テスト1</a><a>テスト2</a>
preg_match('/<a>.*<\/a>/', '<a>テスト1</a><a>テスト2</a>', $result)

でマッチした文字列は、
$result[0]:<a>テスト1</a>
$result[1]:<a>テスト2</a>
となることを期待しているのですが、

実際は、
$result[0]:<a>テスト1</a><a>テスト2</a>
となりました。

<a></a>は独自タグで間に入る文字列長、フォーマットは不定です。
どうすれば期待通りの振る舞いに出来るでしょうか?
69: 2013/11/29(金)11:36 ID:??? AAS
68です。

すみません。訂正します。

× preg_match('/<a>.*<\/a>/', '<a>テスト1</a><a>テスト2</a>', $result)
○ preg_match_all('/<a>.*<\/a>/', '<a>テスト1</a><a>テスト2</a>', $result)
70: 2013/11/30(土)00:49 ID:ykQSlGiP(1) AAS
?
71
(1): 2013/11/30(土)23:20 ID:??? AAS
正規表現の練習になるお題ください
72
(1): 2013/12/04(水)06:52 ID:??? AAS
>>71
お題が欲しけりゃJaneのReplaceStr.txtとかNGEx.txtとか自分でいじってみればいいんじゃないの?
練習はReplaceStr Toolでやれるから。
グループ化を使って解析させると幾分わかりやすくなる。
73: 2013/12/08(日)20:14 ID:1LHzvpJQ(1) AAS
おしえてください。

テーブルタグで囲っている、下記のような
HTMLの表があります。

名前 | ふなっしー
住所 |  東京都港区赤坂
電話番号 | 090-0000-0000

ふなっしー
東京都港区赤坂
090-0000-0000

という結果を期待して

名前(.*)
住所(.*)
電話番号(.*)

と書いたんですが、使い方を間違っているのか?
うまくいきません。
他の記述方法はないでしょうか?
74
(2): 2013/12/20(金)03:59 ID:JjVtc12l(1) AAS
ム板の本スレが新しくなったため報告させていただきます。

■本スレ
Regular Expression(正規表現) Part12
2chスレ:tech

■注意
工作員がわざと重複させて立てた偽スレを本スレだと偽って宣伝に来る可能性があります。
本スレは上記のみですので十分ご注意ください。
75
(1): 2013/12/22(日)03:59 ID:??? AAS
>>72
ReplaceStr Toolって?ググったが出てこない
76: 2013/12/22(日)08:24 ID:??? AAS
>>75
これだろ。
外部リンク[zip]:1st.geocities.jp
77: 2014/01/12(日)01:41 ID:??? AAS
質問は>>74のスレにどうぞ。

保守。・・のついでに私的メモを書いていくかも。

檜山正幸のキマイラ飼育記
外部リンク:d.hatena.ne.jp
1-
あと 316 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.695s*