正規表現道場

このエントリーをはてなブックマークに追加
932nobodyさん:2012/04/13(金) 14:15:11.85 ID:???
933nobodyさん:2012/04/16(月) 12:27:42.62 ID:???
>>931
秀丸の正規表現スタイル判らないけど、
エディタの検索欄で特定の場所だけ抜き出すって結構大変だよ。
いっそ、perl、php、javascriptで書いた方が良いと思う
934ゼッケン774さん@ラストコール:2012/05/09(水) 21:57:54.68 ID:BzXqVbz5
不明
935nobodyさん:2012/05/10(木) 11:31:59.11 ID:uA0oypVx
質問です。javaを使用しています。
(?:[\((][一-龠]+[\))]*)
という正規表現をした際、括弧内にひらがなが含まれてしまうのですが、
含まれない漢字のみ括弧内に存在する表現方法を教えていただけないでしょうか。
お願いします。
936nobodyさん:2012/05/12(土) 18:10:34.44 ID:???
[\((](?!.*[ぁ-んァ-ヶヲ-゚0-9a-zA-Za-zA-Z0-9])はどうだろう。
しかし、「(笑)www」とかだめだよなあ。
937nobodyさん:2012/05/13(日) 01:45:46.19 ID:???
誘導されて来たんですけど、
こんなスレあったのね。
938nobodyさん:2012/05/14(月) 16:10:42.62 ID:???
>>936
いえいえありがとうです。
大事に使わせていたきます。
939nobodyさん:2012/05/15(火) 00:03:15.70 ID:???
正規表現でよく見かける↓のコードのうち
[L] ってどういう意味なんでしょうか?


RewriteRule (.*) app/webroot/$1 [L]
940nobodyさん:2012/05/15(火) 09:36:17.08 ID:CSpkYc1K
>>939
正規表現とはカンケーない。
http://net-newbie.com/trans/mod_rewrite.html#RewriteRule
941nobodyさん:2012/05/27(日) 23:18:00.45 ID:HwDNoFBJ
linuxのgrepでgreenとつく単語を検索したいのですが、どういう正規表現を使えばよいのでしょうか
942nobodyさん:2012/05/28(月) 12:18:36.34 ID:???
釣りですか?
943nobodyさん:2012/05/29(火) 22:34:21.81 ID:???
>>941
grep *green*
944nobodyさん:2012/05/30(水) 19:02:44.43 ID:???
同一の連続するwを除外し、単体のwをマッチさせたいのですが上手くいきません。

[w|w|W]$(?![w|w|W])
では文末が必ずマッチしてしまいます。
同一文字は無理なのでしょうか。
945nobodyさん:2012/05/30(水) 21:52:23.72 ID:???
(?<![W|w|W|w])[W|w|W|w](?![W|w|W|w])
946nobodyさん:2012/06/01(金) 06:28:07.98 ID:???
単芝が滅びした!ありがとうございました。
947nobodyさん:2012/06/01(金) 11:21:23.01 ID:5OXqp69a
www.とかどうすんの
948nobodyさん:2012/06/02(土) 14:54:43.21 ID:???
http://hoge.example/w/ はどうする?
949nobodyさん:2012/06/02(土) 19:04:48.56 ID:???
$
950nobodyさん:2012/06/03(日) 15:01:25.61 ID:+b3NOtvy
>>944-945
文字クラスの[]内で、|を使ってもor検索の意味にはならずに
|という文字にもマッチする正規表現になってしまうと思うんだけど
951nobodyさん:2012/06/05(火) 13:25:40.03 ID:???
>>950
いままで誰も突っ込まなかったのが面白いよね
952nobodyさん:2012/06/05(火) 17:29:38.47 ID:???
javaをしようしています。
同一の連続する3つの文字のつながりが2種以上、
あああいいいううう、や
あああいいいあああいいい、などにマッチする正規表現を教えてください。
よろしくお願いします。
953nobodyさん:2012/06/05(火) 19:13:00.94 ID:???
((.)\2\2){2,} 
でどう?
954nobodyさん:2012/06/05(火) 19:33:19.22 ID:???
>>953
ありがとうございます!
しっかりマッチすることができました!
955nobodyさん:2012/06/06(水) 08:57:42.95 ID:???
>>953
954です。
>>953をつかうと、一種6文字以上になると3の倍数ごとにとそれもマッチ
してしまうのですが、それを避けることができますでしょうか。
たびたびご迷惑かけてすいません。
よろしくお願いします。
956nobodyさん:2012/06/06(水) 11:01:47.54 ID:???
((.)\2\2(?!\2)){2,}
求めてる条件があってるのか分かんないけど
957nobodyさん:2012/06/06(水) 15:54:28.31 ID:???
>>956
求めているそのものでした。本当にありがとうございました!
958nobodyさん:2012/06/07(木) 23:23:40.40 ID:???
../../../../aaa
../../aaa
../////bbb
/asdaii/daia/aaaa

の場合に一番右の/から左側を検出するようにするにはどうすればいいですか?

../../../../
../../
../////
/asdaii/daia/

959nobodyさん:2012/06/07(木) 23:56:12.45 ID:WHczB1bW
(.*\/)[^\/]*$
960nobodyさん:2012/06/08(金) 10:21:58.59 ID:???
単純に .*/   ( 環境によっては  .*\/  )
じゃ駄目なの?
961959:2012/06/08(金) 11:55:23.48 ID:+g+yLQod
そんな気がしてきたwwwww
962nobodyさん:2012/07/10(火) 01:04:31.08 ID:???
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
GMOインターネット よしかわ たくお  まじでうざいんですけど。
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
GMOインターネット よしかわ たくお  まじでうざいんですけど。
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
GMOインターネット よしかわ たくお  まじでうざいんですけど。
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
GMOインターネット よしかわ たくお  まじでうざいんですけど。
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
963nobodyさん:2012/07/19(木) 13:22:33.53 ID:???
>>943
grep -e "*+green+*"
964nobodyさん:2012/07/25(水) 19:18:05.52 ID:???
 
965nobodyさん:2012/07/28(土) 09:37:57.75 ID:???
tes
966nobodyさん:2012/07/30(月) 10:55:07.56 ID:???
PHPのpreg_matchかreplaceで

ABCDEっていう文字列かFGHIJっていう文字列が最初にあって、
後ろに数字がいくつか並んでいるという正規表現はどう書けばいいでしょうか?

orは | であらわすと思ったのですが文字列になるとどう書けばいいのかわからなかったので。。

よろしくお願い致します。
967nobodyさん:2012/07/30(月) 13:41:05.40 ID:???
>>966
'/\A(ABCDE|FGHIJ)\d+/'
968nobodyさん:2012/07/30(月) 13:44:19.19 ID:???
>>967
ありがとうございます。
\Aってどういう意味があるんでしょう?

それと()ってキャプチャする時にしか使わないと思ったんですが他に意味があるんですか?
969nobodyさん:2012/07/31(火) 17:44:18.81 ID:???
>>968
>>5に正規表現関連のサイトへのリンクがあるよ。

\A 文字列先頭位置にマッチ
^ 行頭にマッチ
複行修飾子mを使ってないときは同じ意味だけど、複行マッチでは違う。
複行マッチでの改行直後で^はマッチするけど、\Aはマッチしない。
で、防衛的に文字列先頭という意味の時は\Aの方が好ましい。

カッコについてはその通りで、キャプチャするという機能もあるんだけど、
もうひとつグループ化という機能もある。例えば、(AB)+とか。これは
AB、ABAB、ABABAB、…にマッチする。ただ、キャプチャ保存の分オーバー
ヘッドとかメモリ使用量が多くなるとか効率面で問題あるのかも。
その場合、グループ化だけの機能を持つ(?:〜)が使える。なので、>>967は、
  \A(?:ABCDE|FGHIJ)\d+
の方が良いのかも。
970nobodyさん:2012/07/31(火) 17:50:50.74 ID:???
>>969
なるほど!
詳しく説明していただいてありがとうございました!
わかりやすかったです!
971nobodyさん:2012/08/01(水) 23:55:05.65 ID:7jlH6jTD
すみません、PHPスレから誘導されてきました

PHP Version 5.3.14を使っています
preg_match(正規表現, $text)で$textが全角文字または半角英数字で構成されていることを
チェックしたいのですが、どうしたら良いでしょうか
記号は一切排除したいと思っています
よろしくお願いします

(以前やっていた方法 preg_match('/^w+$/u', $text)があるときから全角文字をエラーで返すようになってしまい
対応できなくなってしまいました)
972nobodyさん:2012/08/02(木) 01:19:42.46 ID:???
>>971
以前やっていた方法って、
/^w+$/u
じゃなくて
/^\w+$/u
だよな?
ある時からエスケープシーケンスはUnicodeプロパティを無視するように仕様変更したはず。
これはphpが利用しているPCREがそうなったからだったと思う。

全角文字ってのはひらがな・カタカナ・漢字ってことでOKだよな?
ならこれでうまく行くはず。
/^[0-9a-zA-Z\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{4E00}-\x{9FFF}]+$/u
973nobodyさん:2012/08/02(木) 08:26:03.28 ID:???
>>972
うまくいきました!
前のやり方がダメになった理由の解説までしていただいてありがとうございます
急にそんな仕様が変更されるなんて恐ろしいんですが、教えていただいたように
丁寧に作った方がいいみたいですね
ありがとうございました

974nobodyさん:2012/08/11(土) 14:03:27.69 ID:???
t
975nobodyさん:2012/08/23(木) 12:27:54.97 ID:???
age
976 忍法帖【Lv=2,xxxP】(1+0:8) :2012/09/05(水) 09:36:06.11 ID:???
test
977nobodyさん:2012/09/07(金) 03:22:20.21 ID:???
正規表現でやることを諦めるのは
どういうお題が出た時ですか?

1.正規表現では不可能
例・・・○○

2.正規表現で頑張ればやれるが、複雑になるからやらない。
例・・・○○

1,2の例の部分を教えて下さい。
978nobodyさん:2012/09/07(金) 10:01:53.39 ID:???
不可能かどうかは数学的にわかってるのでちゃんと勉強してください。

できるはずだけど複雑だからやらないのは条件に否定が入るとき。

実際には何が何でも使おうとしてある場合は諦めるって言うよりは、
使って簡単にできそうなときに使うって感じかなぁ。
979 忍法帖【Lv=3,xxxP】(1+0:8) :2012/09/14(金) 10:37:26.72 ID:???
!ninja
980nobodyさん:2012/09/18(火) 03:34:48.70 ID:8HJfmbgZ
そろそろ次スレ?
981nobodyさん
こっちに合流でよくないかい?

正規表現 Part10
http://toro.2ch.net/test/read.cgi/tech/1340383120/