- 1 名前:デフォルトの名無しさん [2007/08/02(木) 13:53:20 ]
- 正規表現(Regular Expression)スレです。
質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。
- 267 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 09:26:00 ]
- エスケープ
- 268 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 11:43:08 ]
- regexre
FrameworkFrame などといったような「同じ文字列とそれに挟まれた別な文字列」を取り出したいのですが、 どういう文を書いたら実現できますか? PHPのpreg_replaceで使用します。 よろしくお願いします。
- 269 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 12:00:17 ]
- re(.*)re でいけると思うけど。
以下はJScriptだけどこれくらいなら読み取れるよね? var keyword = "re"; var pattern = keyword + "(.*)" + keyword; var objReg = new RegExp(pattern); "regexre".match(pattern); WScript.StdOut.WriteLine(RegExp.$1); "rere".match(pattern); WScript.StdOut.WriteLine(RegExp.$1); "regexregex".match(pattern); WScript.StdOut.WriteLine(RegExp.$1);
- 270 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 12:50:33 ]
- Ruby なら (.+)(.+)\1 で $2 を取ればいけるけど、
PHP でいけるかどうかは知らん
- 271 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 12:53:54 ]
- >>269
日本語読解力に大きく欠けますな
- 272 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 13:00:21 ]
- eregexreならrが取れるはずだからつかいものになるのか?
- 273 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 13:05:34 ]
- eregexre なら regexr が取れる。
最長一致だから。 これが目的の物かはともかくとして。
- 274 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 13:51:50 ]
- >>269
すみません、説明不足でした。 同じ文字列というのも未知なのです。 >>270. ありがとうございます。 Rubyならいける、というのは期待が持てました。 早速調べてみます。 >>272-273 ここも説明不足でした。 「同じ文字列とそれに挟まれた別な文字列」の全てを取得したいです。 つまりThisIsThePenという文字列からThisIsTh(とePe)を取得できるようにしたいのです。
- 275 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 13:56:24 ]
- sIs は要らないの?
- 276 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:00:51 ]
- sIs が必要ないならとりあえず Ruby ではこうなる。
PHP でいk(ry 'ThisIsThePen'.scan(/((.+).+\2)/) { puts($1) }
- 277 名前:デフォルトの名無しさん [2007/11/23(金) 19:31:22 ]
- 文字列 [全ての文字] を 正規表現 [[]([^\]]+)] で 全ての文字 を取り出すことができますが、 文字列 {全ての文字} で 全ての文字 を取り出す正規表現を教えてください。
- 278 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 19:42:51 ]
- 日本語でおk
- 279 名前:デフォルトの名無しさん [2007/11/23(金) 19:46:56 ]
- \{([^\}]+)\}
- 280 名前:デフォルトの名無しさん [2007/11/24(土) 08:40:39 ]
- ありがとう。
すごいね 正規表現分かる人尊敬するわ
- 281 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 09:46:49 ]
- 別に大した事じゃない。
すげーとか思って思考停止してるから理解できないだけ。
- 282 名前:デフォルトの名無しさん [2007/11/24(土) 09:48:41 ]
- 分かりました。
私も頑張って勉強します
- 283 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 10:09:17 ]
- よし! その意気だ!
- 284 名前:デフォルトの名無しさん [2007/11/24(土) 11:18:23 ]
- ホモビデオからお前ら。
- 285 名前:デフォルトの名無しさん [2007/11/25(日) 17:53:21 ]
- なんでホモなの?
私は女性です
- 286 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 19:20:34 ]
- 性同一性障害か
- 287 名前:デフォルトの名無しさん [2007/11/25(日) 20:30:25 ]
- 性器表現
- 288 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:32:19 ]
- モザイクのことか
- 289 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:01:46 ]
- >>285
ホモセクシュアルは同性愛って意味だよ 当然、女性同士でも使う
- 290 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 12:46:15 ]
- ここにいる奴らは全員例外なくホモ
サピエンス
- 291 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 15:19:45 ]
- ホモ牛乳という名前にはかなりインパクトがあると思うんだ
- 292 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 15:26:00 ]
- 「ホモゲナイズド牛乳」じゃ長すぎるべ。
- 293 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 18:38:03 ]
- ホモジニアス・マルチコアを略してホモコア呼べ
- 294 名前:デフォルトの名無しさん [2007/11/27(火) 08:45:29 ]
- みんな頭おかしいのですね。
残念です
- 295 名前:デフォルトの名無しさん [2007/11/27(火) 11:39:19 ]
- HTMLに含まれる CSSの
class="***" や id="**" , aタグの target="***" を削除したいんですが、観よう見真似でやったのですが マッチしてくれません。どなたか.. (id|class|target|title|style|name)=[\+\$\;\?\.\W\w%,!#~*/:@&=_-]+? PC用に吐き出されたデータを、携帯用に変換したくて..
- 296 名前:デフォルトの名無しさん [2007/11/27(火) 11:56:07 ]
- target="[^"]*"
- 297 名前:デフォルトの名無しさん [2007/11/29(木) 17:43:52 ]
- HTMLのコメントを取得するにはどうしたら良いでしょうか?
<!--[^-->]*--> で試したのですが[^-->]だと各文字を含まないとなってしまうのでだめでした。 文字列を含まないって表現方法がわかりません。 お手数ですがよろしくお願いします。
- 298 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 18:01:50 ]
- >>297
貪欲でないマッチ
- 299 名前:デフォルトの名無しさん [2007/11/29(木) 18:35:11 ]
- >>297
html パーサ使え
- 300 名前:297 mailto:sage [2007/11/29(木) 19:51:50 ]
- >>298
ありがとうございます。 貪欲でないマッチでググッた所無事解決しました。 >>299 プログラム内で使いたかったので、 パーサを使うとhtml記述ミスなどがあった場合に面倒なので正規表現を使う事にしました。
- 301 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:53:17 ]
- >>299
アホ
- 302 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 03:37:22 ]
- bregexp.dllを使って
<th>ほげほげ<br/>ほげほげ</th> のような<th>で囲まれた内部の<br/>だけ削除したいのですが、 <br/>の数が不定で困ってます。どう書けばよいのでしょう?
- 303 名前:デフォルトの名無しさん [2007/12/02(日) 17:04:43 ]
- >>302
html パーサ使え
- 304 名前:デフォルトの名無しさん [2007/12/03(月) 18:49:06 ]
- 正規表現でand検索したいのですが
どのようにすればいいのですか? 正規表現: Win.*Mac.*Linux.*Sun 上記のようにやると、順番が固定されてしまいます。 どのような順番でもいいので4つ入っていれば ヒットさせたいのです。
- 305 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 19:19:07 ]
- >>304
肯定戻り読み
- 306 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 21:22:52 ]
- (?=.*Win)(?=.*Mac)(?=.*Linux)(?=.*Sun).*
- 307 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:37:29 ]
- NHKのFMの番組の曲の時間表示(全角の数字と '分'と'秒'から成る文字列で
末尾は必ず '秒' )を一気に半角数字と「分⇒m」「秒⇒s」のように一気に置換 する方法がありますか? 全角数字でも '2007年' のような文字列はそのま まにしたいのです。 【例】 '6分08秒' ⇒ 6m08s
- 308 名前:デフォルトの名無しさん [2007/12/04(火) 00:20:03 ]
- tr/時分秒/hms/
- 309 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 09:06:00 ]
- >全角数字でも '2007年' のような文字列はそのままにしたい
のなら >【例】 >'6分08秒' ⇒ 6m08s は '6分08秒' ⇒ 6m08s ならないといけないの? それとも【例】のようにして欲しいの?
- 310 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:11:44 ]
- 正規表現処理系一般の話なら文字変換はダメだなあ
- 311 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:38:52 ]
- tr/時分秒[0-9]/hms[0-9]/
- 312 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:39:27 ]
- trはスレ違いだろ
- 313 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 00:33:46 ]
- >>309は日本語が読めないのだろうか?
- 314 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 18:08:23 ]
- >>305-306 できました。ありがとうございます。
- 315 名前:デフォルトの名無しさん [2007/12/05(水) 19:45:45 ]
- URL が多数含まれる文章があるとき、その URL にマッチさせる正規表現を知りたいです。
マッチさせるのは “http://〜/” の部分で充分でして、それだけなら http:\/\/[^\/]+\/ でイケそうです。 ただ今回やりたいのは、特定のドメイン(というかサーバ)の URL はマッチさせない、ということです。 たとえば www.google.co.jp/ にはマッチさせたくない、ということです。 これはどんな書き方になるでしょうか? Perl な正規表現だと具合いいです。
- 316 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 06:31:42 ]
- >315
>2
- 317 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 07:08:24 ]
- フリーでとにかく早いのってどれ?
秀丸のやつ?鬼車?
- 318 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:18:36 ]
- 秀丸は速くない。
- 319 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:11:45 ]
- >>317
秀丸のは確かに速い 速いけど、他で出来て秀丸で出来ない表現が多いし それを無理やり秀丸で表現すると結局遅くなることも多い
- 320 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:27:27 ]
- [0-1]?[0-9]
これで2桁目に0か1が付くか付かないか という表現になりますか?
- 321 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:32:07 ]
- 日本語でおk
それだと、0〜9 と 00〜19 にマッチ
- 322 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:38:08 ]
- すみませんここで聞いて良い事なのか解らないのですが、よければお教えください。
C/Migemo 1.2 リリース版 for Windowsに付属の辞書を読み込ませhoをmigemo_queryしてみたことろ ([ホ☆★ほ逋捕縫豊B萠萌]|ho|Ho)と、なぜかBが含まれた文字列がかえってきました。 この文字列を利用して検索をすると当たり前ながらBに反応してしまうのです。 そこで質問なのですが、どうしてBが含まれるのでしょうか? もしかして私の使い方が間違っているのでしょうか?
- 323 名前:320 mailto:sage [2007/12/09(日) 00:14:35 ]
- >>321
すいません、それが言いたかった ありがとう
- 324 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:33:23 ]
- >>323
「すみません」だろ 日本から出て行けよ
- 325 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:50:18 ]
- こらこら
- 326 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 01:08:50 ]
- >>322
完全にスレ違いな気がするが、どこが適切か知らないので一応答えておくと、 ホウ素の元素記号がBだから。他にはsaで酸素のOが引っかかったりするはず。
- 327 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 01:41:55 ]
- >>326
おおおおおおお! なるほど… おかげで謎が解けました ありがとうございました。
- 328 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 00:38:45 ]
- ひゃ[あぁ゛]*うまひ[いぃ゛]*
- 329 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 01:09:55 ]
- ひゃうまひ゛
- 330 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 04:59:57 ]
- ひゃ゛゛゛゛゛うまひ゛゛゛゛゛゛゛
- 331 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 12:24:04 ]
- /image/[00-31]_[00-1f].jpg
↑00〜31↑00〜1f(16進数) 正規表現でこのように設定したいのですがうまくいきません。 /image/(00_00、01_01・・・10_0a・・・31_1f) こういったものを書きたいのですが可能でしょうか?
- 332 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 12:29:21 ]
- >>331
[] は一文字にしかマッチしないのでー。 正規表現はふつうは数値の範囲は指定できないのでー。 ([0-2][0-9a-f]|30|31)_[01][0-9a-f]\.jpg
- 333 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 13:19:37 ]
- >>331
もしかして、 10進部分と 16進部分を対応させたいと思ってる? それだと正規表現だけでは簡単に書けないと思う。
- 334 名前:デフォルトの名無しさん [2008/01/05(土) 11:31:41 ]
- 日本語の話しになってしまいますが、質問させてください。
>検索対象に正規表現が一致した場合 と >検索対象が正規表現に一致した場合 どっちが正しいのでしょう? 前者が正しいような気がするのですが、よく判らなくなってきました
- 335 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 12:04:31 ]
- 一致というよりマッチといいましょう。
- 336 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 17:24:34 ]
- そういえばどっちも言うような気がする。
文脈によるというかどっちを軸に語るかによるんじゃないかな。
- 337 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 17:36:47 ]
- 厳密に言うと受理だろうが、気にしすぎだとも思う
- 338 名前:デフォルトの名無しさん [2008/01/05(土) 21:41:39 ]
- プログラムの 「前」 ってどっちですか?
- 339 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:42:19 ]
- つまらんコピペだな
- 340 名前:デフォルトの名無しさん [2008/01/05(土) 21:45:36 ]
- じゃね? => ぢゃね?
- 341 名前:デフォルトの名無しさん [2008/01/06(日) 14:50:28 ]
- ここのFAQの中の手作業でNFAを作成ってページなんだけど
capslockabcjp.kitunebi.com/handmade.html /***/にマッチしないきがするけど。
- 342 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:05:50 ]
- だからなんだよ。
- 343 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:29:12 ]
- 〠
- 344 名前:334 mailto:sage [2008/01/06(日) 15:59:55 ]
- レス有難うございます。やっぱり気にし過ぎですかね。
気にしない事にします。
- 345 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:17:00 ]
- if (ch == '/') st = 1;
else if (ch == '*') st = 4; // 追加 図のほうに S4->S4 [label="*"]; だね
- 346 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:05:54 ]
- >検索対象(の文字列)が正規表現(で表されたパターン)にマッチした場合
パターンは固定だから、俺はこっちがしっくりくる
- 347 名前:デフォルトの名無しさん [2008/01/10(木) 03:38:22 ]
- "one two three four"
"one three two four" にしたいのです。正規表現でスワップ(位置交換)したいんですが ググってもあんまりなかったです。 一応、java.util.regex.*; 使ってます。
- 348 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 03:41:41 ]
- "one two three four five"
"one four three two five" 1 2 3 4 5 1 4 3 2 5 でした。
- 349 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 16:36:35 ]
- Pattern pattern = Pattern.compile("^(.*?)\\s+(.*?)\\s+(.*?)\\s+(.*?)\\s+(.*?)$");
Matcher matcher = pattern.matcher("one two three four five"); String str = matcher.replaceFirst("$1 $4 $3 $2 $5"); とりあえず
- 350 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 17:42:18 ]
- >>349
おお、ありがとうございます。 java.util.regex.Pattern; のAPI見ても \1 は載っていても、$1 は載ってなかったんですができるんですね。 ところでAPI(java, perl, ruby, js)見ても良く分かり辛いのですが、\n, $n のnはいくつまで参照できるんでしょうか。 nは10進表記みたいですけど、 \0 - 1から9までは dec \1 ... \9 - dec \10, \11 ... \21 - oct \010, \011 ... \025 \0nnn とすれば自動で8進表記 \nnnn とすれば自動で10進表記 参照は \1 <=> $1 API(java)ではこういう感じみたいなんですけど実際はどうなんでしょうか。
- 351 名前:デフォルトの名無しさん [2008/01/10(木) 21:27:54 ]
- "\1" じゃなく、"\\1" じゃないのかな。
java コンパイル ⇒ 正規表現コンパイル つまり2回コンパイルされる事に注意。 ここらへんの理屈がわかってないとツライよ。
- 352 名前:349 mailto:sage [2008/01/11(金) 00:55:38 ]
- >>350
とりあえず最大数は気にしなくていい、[\$]1000とかでもいけるように見える Petternクラスでは0始まりは8進数になるけど、Matcherクラスでは10進のまま PetternのescapeとMatcherのappendReplacementあたりのソースを見るといい うまくまとめられてないけど、2ch止まるらしいので今のうちに書いとく
- 353 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 17:24:33 ]
- APIソース見てるんですか!
そこまで頑張らなくてもどこかにあるJavaのフォーラムで質問した方がいいんじゃないですか?
- 354 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 17:39:56 ]
- 質問者よりも回答者の方が問題解決に躍起になってるスレ。
- 355 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 20:10:07 ]
- sedを使ってC言語のコメントを全て削除するにはどうやればいいんですか?
コメントが1行に収まっているなら簡単なんだけど、複数行にまたがる場合にどうすればいいかわからない
- 356 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 20:22:05 ]
- >>355
パターンスペースとホールドスペースを駆使すればできなくはないが、お勧めできない。 awkかperl、或いは最近のスクリプト言語を使う方がいい。
- 357 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 08:24:05 ]
- 俺には無理ぽ
--------------------------------------- # decom.sed /\/\*/ { :loop /\*\// { b break } N b loop :break s/\n/ /g s/\/\*.*\*\///g } ---------------------------------------
- 358 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 08:30:01 ]
- ttp://main.rtfiber.com.tw/~changyj/sed/html/p.20010226b.html
ちょろっと探したらすぐ見つかったしorz
- 359 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 09:21:03 ]
- でも>358だと文字列中の/*にも反応しちゃうんだよね。
本格的に使うのは、ちょっと無理。
- 360 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 09:51:59 ]
- プリプロセッサ指令をプリプロセスで消されないよう加工
↓ プリプロセッサにかける ↓ 加工したプリプロセッサ指令を元に戻す
- 361 名前:デフォルトの名無しさん [2008/01/14(月) 12:03:15 ]
- 正規表現のエスケープしなくてもいい記号がわからないので、
とにかく記号という記号はエスケープしていて結構カオスになっているのですが、 エスケープしなくてもいい記号一覧とかどっかにありませんか? !"#$%&'()-=^~\|@`[{;+:*]},<.>/?_ これが \!\"\#\$\%\&\'\(\)\-\=\^\~\\\|\@\`\[\{\;\+\:\*\]\}\,\<\.\>\/\?\_ こんな感じに・・・
- 362 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:22:13 ]
- 半角スペースって普通に半角スペースをいれるか\x20とかくかどっちがいいんですか?
- 363 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:23:19 ]
- 普通に半角スペースを
- 364 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:40:39 ]
- >>363
レスありがとう。 普通に半角スペース使うことにしますね。
- 365 名前:361 mailto:sage [2008/01/14(月) 15:43:29 ]
- 完全かどうかはわかりませんがWikipediaにのってました。
というわけで自己解決しました。
- 366 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:31:15 ]
- >362
\s
- 367 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:36:27 ]
- >>366
秀丸じゃ使えないんだよな
|

|