- 1 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:07:28 ]
- 正規表現(Regular Expression)スレです。
質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。 前スレ 正規表現 Part4 pc11.2ch.net/test/read.cgi/tech/1186030400/
- 175 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 11:48:35 ]
- 最近は再帰的にマッチできる正規表現が出てきてるんですね
メールのコメントをみんなどうしてるのかずっと悩んでました
- 176 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 07:59:25 ]
- 後方参照は便利だね。
- 177 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 10:09:57 ]
- >>175
形式言語的な意味で「正規(正則)」な言語ではなくなってるけどね
- 178 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 13:12:16 ]
- 前ってどっちですか?
後ろってどっちですか?
- 179 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 15:32:26 ]
- あー、あるあるw
プログラムカウンタが進む方(番地が大きい方)が前っぽいのに、 前方参照っつーと番地が若い方だったり。
- 180 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 16:19:58 ]
- このマップが悪いのかな、マップの赤点が見づらいわ
- 181 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 16:20:49 ]
- 誤爆ね
- 182 名前:デフォルトの名無しさん [2008/08/31(日) 10:38:11 ]
- Rubyです
予め文字列を逆にしておき連続する改行の後ろだけにマッチ /\n(?=(?:\n[^\n]+)+)$/ もっとスマートな方法があれば教えてください
- 183 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 11:31:48 ]
- 連続する改行の後ろだけにマッチ
って事なら、リバースする前に /[^\n]+\n(?=\n+)/ じゃダメなのかな
- 184 名前:182 mailto:sage [2008/08/31(日) 11:58:23 ]
- アホだ〜
ここまで解ってるなら逆にする必要なかった /^((?:[^\n]+\n)+)\n(.*)$/m これで\1と\2を取り出せば良いんですよね
- 185 名前:182 mailto:sage [2008/08/31(日) 12:04:02 ]
- >>183
リバース前にそれだと前の改行にマッチしてしまいませんか?
- 186 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 08:28:15 ]
- 最小一致の呪文を覚えた
/\A((?:.+?\n)+?)(?:\n(.*))?\z/m 最終的にこうなりました 正規表現奥が深いです
- 187 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 08:43:01 ]
- >>84-85
この範囲[x,y]って表現は何のことですか?java/rubyでもないんですけど・・
- 188 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 09:08:18 ]
- >>187
数学
- 189 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 09:09:23 ]
- >>187
[文字の範囲] と {繰り返し回数} を混同してないか?
- 190 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 09:15:43 ]
- 数学。あーそういうことですか。
\\s(\\w) \\s([\\w]) の違いを調べてるんですが、同じくヒットするんですけど何か違いはあるんでしょうか。 \\w => \wです。
- 191 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 09:19:54 ]
- ありません
- 192 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 09:35:50 ]
- あーそーですか。ありがとうございます。
- 193 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 09:37:55 ]
- 数学上の範囲[a,b]は、プログラム的な表現は a..b や (a..b) じゃないですかね?
- 194 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 12:48:04 ]
- Javaなんですが、強欲な数量子ってのは、欲張り表現ってのでしょうか。
デフォルトでは最長一致なんですが(c+は、c+?ではない方です)、このデフォルト の挙動 c+ が強欲表現 c++ なんでしょうか? いまいち c+ と c++ の違いがわからないのですが、何か良いサンプルはないでしょうか。 ちなみに、ネタじゃないですよ
- 195 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 13:21:19 ]
- >>194
「強欲な数量子」でググれ "ab" に対して /.+b/ と /.++b/ とか
- 196 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 13:29:59 ]
- >>194
/c+/と/c++/単独では対した違いはないが、 強欲=「バックトラックしない」だから、後ろに対して影響がある。 たとえば、/c+c/は"ccc"にマッチするが、/c++c/は"ccc"にマッチしない。
- 197 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 13:35:38 ]
- なんだバックトラックか。
rubyでも廃止予定とか言わず、サポートすればいいのに…
- 198 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 14:17:08 ]
- c++ってcが2の倍数分だけ得るって事か
- 199 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 18:21:05 ]
- >>194
c+? : non-greedy (正規表現全体がマッチする範囲で最短) c+ : greedy "貪欲" (正規表現全体がマッチする範囲で最長) c++ : possessive "強欲" (正規表現全体がマッチしなくなっても、とにかく最長)
- 200 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:17:26 ]
- 丁寧にありがとうございます。
- 201 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:22:59 ]
- rubyの(?> )とほぼ等価ですかね。
イマイチ使う場面に遭遇しないんですけど… どういう整形に必要かわからないんですけど、パタン表現になるぐらいだから、ある程度は需要があるのかなと思います。 これら特殊表現は、サンプルが多く出てくると、表現を理解できて、使える人がたくさん増えてくるのかなと思います。
- 202 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 04:46:06 ]
- タグ処理でよくあるんですけど、
<(.+?)> <(.+)?> は何か差があるんでしょうか。
- 203 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 07:21:56 ]
- 下は
<> や <abcd>>> みたいなのにもマッチするぞ
- 204 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 08:48:19 ]
- >>201
正規表現を最適化するのに役立つ。 つまり「バックトラックしても無駄だ」っていうことを表明できる。
- 205 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 08:53:47 ]
- 実装はそうでしょうけど、使う方からすると気にしてませんよ。
そもそもそのバックトラックの違いで速度などの差が出るようなら、regexpライブラリ使わないでしょうし。
- 206 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 08:54:59 ]
- >>205
お前が気にするか気にしないかは問題じゃない
- 207 名前:デフォルトの名無しさん [2008/09/04(木) 09:05:39 ]
- おまえが気にするかとかよりも、バックトラックで問題が出るなら一般的には誰も使わないんじゃないですかね?
気にしてるのは、あなたの方ですよw
- 208 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 09:13:57 ]
- だから俺は気にするといってるんだが…
- 209 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 10:46:12 ]
- >>203
おお、そんなところに差があったんですか!感謝です!
- 210 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 11:01:52 ]
- 気にするって、まさか自分で実装してるんですか?
c のstring.h程度なら自力で実装できるんですけど・・・
- 211 名前:デフォルトの名無しさん [2008/09/04(木) 11:36:34 ]
- 正規表現の記事なんだが
やっと読み終わったぜ codezine.jp/article/detail/1573
- 212 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 12:02:17 ]
- バックトラックの量は正規表現を利用するだけの立場でも気にするべきことですよ。
- 213 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 12:05:02 ]
- ところでそれ、実測しましたか?
- 214 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 12:30:14 ]
- $unko =~ m!-_-!m;
- 215 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 13:20:26 ]
- 正直怖いです
- 216 名前:デフォルトの名無しさん [2008/09/15(月) 09:35:05 ]
- /\w+/にマッチし
/end/にマッチしない というのをひとつの正規表現で書くのはどうすればいいですか?
- 217 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:31:31 ]
- 否定読み
- 218 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:37:40 ]
- !/\W|end/
勝手に /^\w+$/ だと思い込んでみた。
- 219 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 20:23:01 ]
- サンクス
!//なんて技があるのか。 でもエディタの設定に//の中だけ書かなきゃいけないから使えないっぽい・・・ \b [^] |を駆使すれば出来そうだがめんどいな。
- 220 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 23:02:18 ]
- //の中だけじゃ、ignoreとかのフラグはどうしてんの?
- 221 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 23:17:10 ]
- チェックボックスがあるんだろ
- 222 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 00:23:31 ]
- ○○あいうえお□□123
○○かきくけこ○□345 ○○あかさたな□○567 ○○はまやらわ□□789 ○○あいうえおかきくけこ このような文字列の○○と□□を入れ替えるには どうしたらいいのでしょうか? ※○□と□○はそのままにする
- 223 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 00:25:51 ]
- (○○)(.*)(□□)(.*)
\3\2\1\4
- 224 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 00:59:03 ]
- 素早い返事ありがとうございます。
ただ、それだと2、3、5行目の○○が□□にならないです。
- 225 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 01:37:44 ]
- s/○○/dummy/;
s/□□/○○/; s/dummy/□□/;
- 226 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 23:29:17 ]
- 正規表現である文字を含まない行に一致させる方法はありませんでしょうか?
たとえば あいう えおか きくけ とこのようにあった場合「お」を含まない行「あいう」「きくけ」にマッチさせたいんですが
- 227 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 23:52:05 ]
- grep -v お n.txt
- 228 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:47:11 ]
- >226
多バイト文字に対応しているとして ^[^お]*$ だけど、大抵の正規表現処理系において >227 のように「マッチしない」を指定する方法があるので そっちを使う方が賢明。
- 229 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 01:15:58 ]
- >>227
>>228 レスありがとうございます。 すみません正規表現で文字処理するマクロソフト使用でしたので処理系があまり詳しくあえいませんでした。 ^は基本でしたね、無事 ^[^お]*$ ですることが出来ました ありがとうございます。
- 230 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 03:31:00 ]
- しかし現行の正規表現って使いづらいよな。
読みにくく書きにくくしかも非力。もう駄目駄目。 2chの面白いレスにのみマッチするといった条件が記述できるくらい強力な オブジェクト指向か関数型ベースの正規表現を作るべきなんだよ。
- 231 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 07:51:36 ]
- 文字列に対してオブジェクトや関数型ベースってどういう意味?
- 232 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 01:50:50 ]
- ブラウザによってもjavascriptの動作変わりますよね
javascriptです。 123451234512345 このような文字列があった場合 /1[0-9]*5/g とするとどのようにマッチするかわかりますか? このようにして使っていたんですが、ブラウザごとに違う動作をするようでうまくいきません。 IEでは12345 12345 12345 と三つにマッチするみたいです。 このような曖昧なものにするとだめなのでしょうか。 対処策などありましたらお願いします。
- 233 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 03:36:50 ]
- いや、、、どうしたいの?
- 234 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 09:17:03 ]
- 貪欲マッチで「12345」にしかマッチしないのは変だな。
- 235 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 09:53:49 ]
- Firefoxで以下を実行すると12345123451234にマッチする
javascript:alert("123451234512345".match(/1[0-9]*4/g)); もちろん 1[0-9]*5 に変えると全部にヒット JavaScriptのエンジンまでとは言わないからせめてブラウザぐらい書いてくれ
- 236 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 09:57:10 ]
- IEですね、本当にすみませんでした。
- 237 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 10:05:11 ]
- WinME IE6では123451234512345にマッチした
- 238 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 10:40:46 ]
- /▶1◀▶[0-9]*◀▶5◀/
"▶1◀▶23451234512345◀" [0-9]*で残り全部にマッチしちゃって、最後の「5」があぶれそうに思えるけど、 ちゃんと全体にマッチするんだね。自分もまだ修行が足りない。
- 239 名前:232 mailto:sage [2008/09/18(木) 12:27:11 ]
- IE7でした。IE7でも>>235さんのものを実行したら12345123451234にマッチしますね
正規表現間違っていただけかも・・ 「12345」「12345」「12345」 このように3つにマッチさせたいと思ってました。 実際処理していた文字列は長いのですが .* これを挟んでいたのになぜか IE7では「12345」「12345」「12345」のように最短マッチのように出ていたみたいです。firefoxでは「123451234512345」 innerHTMLでの処理だったのでIEとfirefoxとでは改行?かなにか、文字列が変わっていたことが原因だったと思われます。 /1[0-9]*?5/gのように?をつけたら同じ動作をするようになりました。 レス下さった方ありがとうございます、勉強になりました。
- 240 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:54:29 ]
- 単純な知的好奇心の質問なのですが、
123456789と適当な桁数の数値があった時、先後読みだけで3桁ごとにカンマを挿入するにはどう記述したらいいのでしょうか。 preg_replace("/(?=[0-9]{3})/", ",", "123456789"); では左から3桁以下になるまでカンマが一桁ごとに入ってしまいます。 前後逆転せずにできる方法があればお願いします。
- 241 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 20:20:56 ]
- >>240
www.din.or.jp/~ohzaki/perl.htm#NumberWithComma
- 242 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 20:25:42 ]
- >>240
整数をカンマ区切りに置換 oraclesqlpuzzle.hp.infoseek.co.jp/regex/regex-2-3.html
- 243 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:18:24 ]
- >>241-242
ありがとうございます。 自分の頭の固さを痛感しました。 {3}+$で右側が3の倍数である時のみ、という風に指定すればいいんですね。 スッキリいたしましたm(_ _)m
- 244 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 17:54:15 ]
- javascriptで正規表現に%記号がうまく使えません。対処法はありますでしょうか?
/%a/i にすると「%a」にマッチするんですが /%a5/i のように%の後に2文字以上続けるとマッチしなくなります。 エスケープもうまくいきませんでした。宜しくお願いします
- 245 名前:244 mailto:sage [2008/09/20(土) 17:56:09 ]
- エンコードされた文字列にマッチさせたいと思っています。
- 246 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 19:30:20 ]
- "\%a5".search(/%a5/i); // => 0
"%a5" という3文字にマッチさせたいんだよね? 0xA5 という文字コードの文字じゃなく。
- 247 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 19:57:14 ]
- ブラウザとか環境を書けって上でも
- 248 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 00:51:45 ]
- そうです。文字エンコードされた %82%a0%82%a2%82%a4%82%a6 という文字列の中から特定の文字をマッチさせたいと考えています。
javascript:alert("%82%a0%82%a2%82%a4%82%a6%82%a8%82%a9%82%ab%82%ad%82%af%82%b1".match(/%82%a0/g)); このように実行してもマッチされないんですよね IEでも狐でもやってみましたがnullになります どこが間違っているんでしょうか
- 249 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 01:03:10 ]
- >>248
その式をコピペしたけど、IE8βでもFirefoxでもOperaでもマッチしたぞ。 何かテスト方法を間違えてる。
- 250 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 02:59:21 ]
- server(ここに任意桁の数字があるかもしれない).www
という文字列にマッチしたいとき、どう書けばいいのでしょうか? 例: server.www server9.www server999999.www よろしくお願いします。
- 251 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 03:34:01 ]
- 少しは自分で調べたり考えたりしたのか?
- 252 名前:250 mailto:sage [2008/09/21(日) 03:42:18 ]
- >>251
わからないならレスしないでください。 それに質問に質問で返すのは失礼です。
- 253 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 04:02:29 ]
- あまりにも初歩的だから>>251の気持ちもわかるw
- 254 名前:250 mailto:sage [2008/09/21(日) 04:51:58 ]
- 難しく考え過ぎてた。
風呂入ってきたら自己解決しましま [|\d]*
- 255 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 04:54:57 ]
- [| ]
これは必要なのか?
- 256 名前:デフォルトの名無しさん [2008/09/21(日) 12:02:25 ]
- 練馬というファイル名リネームソフトで正規表現が使えるのですが、
s/\]([^ \.].+)/\] \1/ という正規表現で何故か「従妹」が「従 妹」、「ゾン」が「ゾ ン」という風に 関係ないところまで半角スペースが入ってしまいますが何故でしょうか? ヘルプを見ると正規表現の仕様は BREGEXP.DLL に準拠すると書かれています よろしくお願いします
- 257 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 13:33:33 ]
- そのソフトは知らんが、作者が抜けてるだけだろ。
- 258 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:52:50 ]
- 従やゾの2バイト目が SJIS で ] なんだろう。
正規表現ライブラリが日本語対応してないんだろうな。
- 259 名前:デフォルトの名無しさん [2008/09/21(日) 18:45:09 ]
- サンクス
他の探すか作者に聞いてみます
- 260 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 22:45:57 ]
- DLL差し替えればいいじゃない
- 261 名前:デフォルトの名無しさん [2008/09/22(月) 00:13:26 ]
- DLL自体は更新止まってるみたいです
- 262 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 05:34:17 ]
- その練馬とやらを使ってみたし、DLLの説明も見たけど、
SJISとして扱うのには、 k修飾子をつけるyぷになってるんだが ちゃんとつけてる?
- 263 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 05:35:30 ]
- って>>256みるとついてないね。つけてやってみては。
- 264 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 11:04:27 ]
- Visual Basic 2005で正規表現の処理を入れ子にしようとしたんだけど、
これだと、henkanに「$&」が文字列としてそのまま渡されてしまいます。 str = Regex.Replace(str, "<a href="".*?"">", henkan("$&")) perlのeオプションみたいなのは見つけられなかったのですが、 どうすればいいのでしょう?
- 265 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 11:22:09 ]
- php5 mb_eregを使用しています。
n個のパターンを後方参照で取得したいです。 例えば 'abcde' を '([a-z])([a-z])([a-z])([a-z])([a-z])' というパターンであれば 'a', 'b', 'c', 'd', 'e' ととれるのですが '([a-z])+' こんなパターンで取得することは不可能でしょうか?
- 266 名前:256 [2008/09/22(月) 17:23:44 ]
- >>262
ありがとうございます! /kで問題なくいけました! ちゃんと説明読んでなかった自分が恥ずかしいです・・・
- 267 名前:264 mailto:sage [2008/09/22(月) 18:03:23 ]
- 自己解決したので、カキコ。
まず、文字列を評価するための宣言をする Dim myEv As MatchEvaluator = New MatchEvaluator(AddressOf henkan) んで、置換部分をこんな感じにする。 str = Regex.Replace(str, "<a href="".*?"">", myEv) さらに、関数をこんな感じに作る。 Public Function henkan(ByVal url As Match) As String Dim s As String = url.ToString() s = Regex.Replace(s, "\\", "/") Return s End Function
- 268 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:48:58 ]
- >>265
mbじゃないなら $ php -r 'preg_match_all("([a-z])","abcdef",$reg);print_r($reg);' でできるんだよな。 でもそれはどうでもいいんだよな。
- 269 名前:デフォルトの名無しさん [2008/09/23(火) 21:44:17 ]
- PHPのpreg_matchを使ってHTML文書から次の内容を検索する
正規表現で困っています。 <a href="URL">前のページ</a> <a href="URL">次のページ</a> ここから「次のページ」を囲んでいるAタグのURLを検索したいです /<a href=\"(.+?)\">次ページ<\/a>/ これだと、前のページのAタグまで含んでしまい困っています。 最左から検索するのが問題だということまでは分かったのですが解決法が分かりません。 /<a href=\"(.+?)\">(?=次)次ページ<\/a>/ こんな書き方もダメでした。 ヒントでもいいので教えていただけませんか?
- 270 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 01:53:37 ]
- >>269
> href=\"(.+?)\" を href=\"([^"<>]+?)\" にでもしたらどーでしょ。
- 271 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 06:47:50 ]
- 始めての…表現
anond.hatelabo.jp/20080924122353
- 272 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 19:04:52 ]
- いままでMac OS9 Jeditにて正規表現での置換をしていました.
正規表現での一括置換ができる検索置換ラクダv1.01を導入したのですが 表現方法?Perlでの書き方が違うみたいで上手く置換できません. できればOS9環境で正規表現の連続置換がしたいので検索置換ラクダで可能な 正規表現をPerl初心者の私にどうかアドバイスというか答えを教えてください・・ 「全角文字の前後の半角スペースを削除」例= この MPEG は → このMPEGは {[、-◯ぁ-んァ-ヶ亜-腕弌-熙]}\s 【タブ】 \1 \s{[、-◯ぁ-んァ-ヶ亜-腕弌-熙]} 【タブ】 \1 「全角文字の前後の半角カンマを全角カンマへ」例= あ,あ → あ,あ {[、-◯ぁ-んァ-ヶ亜-腕弌-熙]}, 【タブ】 \1, , {[、-◯ぁ-んァ-ヶ亜-腕弌-熙]} 【タブ】 ,\1 「行末の西暦を括弧で囲む」例= XX, 2005 → XX(2005) XX,1998 → XX(1998) , {200[1-9]}$ 【タブ】 (\1) ,{200[1-9]}$ 【タブ】 (\1) , {19[1-9][1-9]}$ 【タブ】 (\1) ,{19[1-9][1-9]}$ 【タブ】 (\1) 「半角数字間の全角ピリオドをピリオドを半角ピリオドへ」例= 1.1% → 1.1% {[0-9]}.{[0-9]} 【タブ】 \1.\2
- 273 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 19:13:47 ]
- >>272
全角文字を文字範囲で指定するのは、 文字コードに依存するからうまくいかない環境もあると思う。
- 274 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 20:05:20 ]
- OS9って昔の環境だよな
検索置換ラクダとやらが何だか知らんし Perlのバージョンも分からんが、 多分、単に漢字を文字クラスの中で使えない可能性が極めて高い 例えば、. が漢字一文字にマッチするか試してみればいいが、 多分そうなっていないだろう
- 275 名前:デフォルトの名無しさん [2008/09/30(火) 09:41:18 ]
- php5です
文字列 <tr> <td colspan="2"><img height="5" src="localhost/aaa.jpg" width="1"></td> </tr> <tr> <td width="100" height="147"><a href="/aaaa/bbbb/" title="hogehoge"><img src="localhost/aaa/bbb/ccc.jpg"> この文字列の中のaタグのすぐ後ろのimgタグのURLを取りたく preg_match("/"<a href=\".*?\" title=\".*?\"><img src=\"(http.*?\.jpg)\">/i", $body, $match); こうしてみましたが、マッチしません どのように書けばよろしいでしょうか
|

|