- 1 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:07:28 ]
- 正規表現(Regular Expression)スレです。
質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。 前スレ 正規表現 Part4 pc11.2ch.net/test/read.cgi/tech/1186030400/
- 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); こうしてみましたが、マッチしません どのように書けばよろしいでしょうか
- 276 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 10:48:28 ]
- >>275
imgタグの中で、srcは必ず先頭に来る前提でいいのかな。 /<a[^>]+><img src="([^"]+)/ で、$1を取り出す。
- 277 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 11:13:03 ]
- 空白1つを含む文字列にはマッチするけど、2つ以上連続の空白でマッチしないようにするには
どうすればいいのでしょうか? ab cd ef gh この場合、"ab cd ef"にマッチ。
- 278 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 12:13:17 ]
- >>277
{1}
- 279 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 12:32:32 ]
- >>277
[^ ]+( [^ ]+)*
- 280 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 12:50:20 ]
- >>279
サンクス うまくいきました
- 281 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 16:09:48 ]
- >>276
できました ありがとうございました
- 282 名前:デフォルトの名無しさん [2008/09/30(火) 23:00:39 ]
- 質問です。
●正規表現の使用環境 サクラエディタ ver.1.6.2.0 ●検索か置換か? 検索 ●説明 XMLファイルのタグの中を検索したいです ●対象データ <aaa><bbb>hogehoge</bbb></aaa> ●希望する結果 aaa と bbb と /bbb と /aaa のみ検索される 色分けをしたいのです。 おねがいしまう
- 283 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 23:09:21 ]
- (?<=<).*?(?=>)
- 284 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 23:11:00 ]
- しまうーなら答えざるを得ない
- 285 名前:デフォルトの名無しさん [2008/09/30(火) 23:24:06 ]
- 今回のパナソニックって
s/松下[電器産業]/パナソニック でいいですか?
- 286 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 23:29:57 ]
- 電波ぽいのが気になるが
s/松下(電器産業)?/パナソニック/ じゃないか
- 287 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 23:40:13 ]
- >>283
できました。ありがとうございました!
- 288 名前:デフォルトの名無しさん [2008/09/30(火) 23:43:26 ]
- そうだw
()はグループ化で []は1文字だけか
- 289 名前:282 mailto:sage [2008/10/01(水) 00:16:25 ]
- やっと理解できたwwwwwwwwww
理解できたってか調べるのに時間かかりました (?<=<) これで < が前に存在することを保証する .*? 任意の文字の連続(最短) (?=>) > が後に続くことを保証する 283は天才www チラ裏スマソ
- 290 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 00:18:33 ]
- お礼よりも… 分かってんだろうなボウズ
- 291 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 00:19:44 ]
- >>290
わかりませんサーセン
- 292 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 00:25:56 ]
- さっきからチンポ出して待ってんだから… と言えば何か分かるだろ。
- 293 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 04:10:07 ]
- そういうのりきもいよボケ
- 294 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 05:53:23 ]
- >>293
お前ここは初めてか? いいから力抜けよ。
- 295 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 07:12:33 ]
- >>294
むしろお前が初めてか? 空気嫁よ
- 296 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 09:46:51 ]
- アッー!
- 297 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 10:05:59 ]
- 最近の腐女子は正規表現も嗜むのか。
時代は進んでるな。
- 298 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 11:51:08 ]
- PHP4での処理をしております
$str = preg_replace('/(<br \/>|<br>)/i', '<br />', $str); いろいろやっているうちにチンプンカンプンでしまいには変な顔文字に見えてきて挫折しそうなので どうかご教授お願いします やりたい事は$strの中のbrタグが連続して2つ以上あればそれを1つに置き換えたいです 条件として、<br>と<br />を同じ文字列として考えるのと、たまにbrの間に改行コードがあります <br>\n<br>\n<br /> → <br /> このようにbrタグの間に改行コードがあってもbrタグは連続するものとしたいです よろしくお願いします
- 299 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 12:13:59 ]
- php -r '$s="<br>\n<br>\n<br />";echo preg_replace("/((<br>|<br \/>)\n?)+/i", "<br />", $s)."\n";'
- 300 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 12:21:01 ]
- brタグのすぐ後ろの改行も吸収してしまうが
$s="<br>\n<br><br />\ntest<br>\n\n<br />"; $str = preg_replace("/(<br( +\/)?>\n*)+/i", "<br />", $s);
- 301 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 13:19:37 ]
- >>299-300
望みどおりの処理ができました ありがとうございました
- 302 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 16:41:07 ]
- \d+\.\d+\.\d+\.\d+
でIPアドレスを取得しようとしてますが、 127.0.0.1 にだけはマッチさせたく無いです。 どうやったらいいですか?
- 303 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:16:01 ]
- (((((((((((((((([^1]*)*(1+[^2][^1]*)*)*)*(1+[^7][^1]*)*)*)*(1+[^.][^1]*)*)*)*(1+[^0][^1]*)*)*)*(1+[^.][^1]*)*)*)*(1+[^0][^1]*)*)*)*(1+[^.][^1]*)*)*)*(1+[^1][^1]*)*)*
- 304 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:16:18 ]
- 不可能ではないが2段階に分けたら?
なにがなんでもひとつの正規表現でやらなきゃならない?
- 305 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:18:55 ]
- >>303
((((;゚Д゚))))ガクガクブルブル
- 306 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:23:05 ]
- >>303
そんなの死んでもイヤです!
- 307 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:28:43 ]
- まあIPアドレスなら127.まででもいいとは思うけどな。
- 308 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:02:00 ]
- 文字列がIPアドレスのみなら
$str="192.168.0.1"; preg_match("/(127\.0\.0\.1)?(.*)/",$str,$m); echo $m[2]; でいけるよな
- 309 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:29:36 ]
- 127…でやってみた?
- 310 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:16:55 ]
- s/127.0.0.1/うんこ/g
/\d+\.\d+\.\d+\.\d+/gp s/うんこ/127.0.0.1/g
- 311 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:18:12 ]
- >>309
>308の事なら中身の有無で分岐すればおk
- 312 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:19:03 ]
- ドットにエスケープなんているの?
- 313 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:23:17 ]
- 可読性
- 314 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:55:36 ]
- ドットってエスケープいらないの?
- 315 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 01:04:01 ]
- すまない、必要だった
エスケープしないと任意の一文字でしたね
- 316 名前:デフォルトの名無しさん [2008/10/04(土) 01:51:11 ]
- VC++でマルチバイト(ユニコードではない)日本語文字列を対象とした正規表現ライブラリの定番は何ですか?
- 317 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 09:19:23 ]
- Unicodeに変換しちゃだめなの?
- 318 名前:デフォルトの名無しさん [2008/10/04(土) 21:25:17 ]
- ユニコード用しかないのか・・・。
VC++でまともな正規表現やろうと思ったら、ユニコード用の正規表現ライブラリしかないんですかね? VBAのRegExpコントロールとか、boostのregexとか。 いますごく困ってるのは、VBAのRegExpコントロールを使ってVC++でMBCSプログラミングをしてるんですが、 MatchオブジェクトのFirstIndexプロパティが文字数単位で返ってくることなんですよ。 MBCSだと、バイト単位でどの位置なのか知りたいのに。 もちろん対象となるテキストの先頭から2バイト文字かどうかを調べていけば、 何文字目が何バイト目かを調べることはできるけど、テキストが長くなると処理速度的に満足できない。 ユニコードで何文字目→MBCSで何バイト目を高速に計算するAPIってないですか?
- 319 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 21:43:13 ]
- あと思いつくライブラリは鬼車だけど、どうだろう
何バイト目?ってのは結局頭から見ていくしかないので高速化も難しい でも長いテキストでも見る開始位置を後ろに持っていくぐらいはできるかな
- 320 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:14:36 ]
- >>319
鬼車というのはちょっと見てみましたが、クセがありそうなのでやめときます。 文字数→バイト変換はやっぱり先頭から真面目にカウントするしかなさそうですね。 過去のカウント結果を保持するような文字数→バイトカウント専用のクラスを作って、 同じテキストに関するカウントの高速化をするとか工夫してみます。
- 321 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:09:25 ]
- MBCSの定番と言えばbregexp.dllじゃね?あるいは鬼車を同じIFにしたbregonig.dllとか。
鬼車以上にクセがあるが。
- 322 名前:デフォルトの名無しさん [2008/10/06(月) 13:33:23 ]
- 一括置換ソフトを使い、
複数のファイルにて、一括複数行置換をしたく、そのために正規表現を使わなくてはなりません。 色々と試してみてもうまく検索されないので教えてください。 <!--shinobi1--> <script type="text/javascript" src="x7.shidareyanagi.com/ufo/ここに9桁の英数字があります"></script> <noscript><a href="x7.shidareyanagi.com/bin/gg?ここに9桁の英数字があります" target="_blank"> <img src="x7.shidareyanagi.com/bin/ll?ここに9桁の英数字があります" border="0"></a><br> <span style="font-size:9px"><img style="margin:0;vertical-align:text-bottom;" src="img.shinobi.jp/tadaima/fj.gif" width="19" height="11"> <a href="sbc.rentalurl.net" target="_blank">美容整形</a></span></noscript> <!--shinobi2--> ファイルにより、上記の中で、「ここに9桁の英数字があります」のところがそれぞれ異なります。 その複数ファイルの中で<!--shinobi1-->から<!--shinobi2-->まで囲まれた部分を検索にかける場合、正規表現ではどう書きますでしょうか? 一括置換ソフトは 複数行置換 を使用しております。
- 323 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 13:37:08 ]
- >>322
<!--shinobi1-->.*<!--shinobi2--> ではダメなの?
- 324 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 13:39:04 ]
- <!--shinobi1-->.*<!--shinobi2-->
- 325 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 13:57:09 ]
- 最長一致しちゃうから、.* じゃマズいでしょ。
途中にコメントがないなら、<! を避ければいけそう。
- 326 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 19:16:41 ]
- .*? でいいんじゃ
- 327 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:30:13 ]
- 最短一致で何か問題あるの?
- 328 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:59:53 ]
- だれもそんなことはいってないが
- 329 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 08:19:34 ]
- 正規表現を使わなければならない、って云ってるのに
やり方が分からないってどういう事だ
- 330 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:48:57 ]
- その一括置換ソフトとやらが正規表現を使えるってことじゃ?
- 331 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 10:25:20 ]
- sedで、
<a href="http://○○<br><br>○○ target="_blank">△△</a> <a href="http://○○○○ target="_blank">△<br><br>△</a> にマッチングして、<br><br>を削除したいのですがどの様な記述になるのでしょうか。
- 332 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 10:28:10 ]
- (<br>){2,}
- 333 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 10:35:57 ]
- 追加
□□<a href="http://○○<br><br>○○ target="_blank">△△</a>□□ □□<a href="http://○○○○ target="_blank">△<br><br>△</a>□□ 失礼しました。<a href=""></a>の前後にも文字列があります。<a href=""></a><a hr・・・と 繰り返している可能性もあり、<a href=""></a>内で<br><br>が発生している時はsedで取り除きたいのです。
- 334 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:22:35 ]
- <a href="">.*?(<br>){2,}.*?</a>
- 335 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:33:58 ]
- >>334
有り難うございます。 <a href=".*?(<br>){2,}.*?</a> と変更しまして、ためしましたと所、 <a href=""></a>○○<br><br>○○<a href=""></a> にもマッチングしてしまいます。
- 336 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 14:14:50 ]
- /(<a href=.+?>.*?)<br><br>(.*?<\/a>)/$1$2/ でどうだ
|

|