[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 13:48 / Filesize : 160 KB / Number-of Response : 745
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

正規表現 part4



1 名前:デフォルトの名無しさん [2007/08/02(木) 13:53:20 ]
正規表現(Regular Expression)スレです。

質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。

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
秀丸じゃ使えないんだよな

368 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:37:44 ]
>>366
つーか、それホワイトスペース一般じゃないか?

369 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:55:23 ]
ホワイトベースに見えた

370 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:43:17 ]
セイラさんにハァハァしすぎw



371 名前:デフォルトの名無しさん [2008/01/14(月) 20:00:29 ]
\s は改行にもマッチすることがあるから
半角スペースの代わりにはならないよ

372 名前:デフォルトの名無しさん [2008/01/14(月) 22:22:22 ]
特定の英単語が含まれているかをチェックする正規表現を教えてください。
This is a pen.
に対してhisをチェックした場合に引っかからないのが正しいです。

英単語の定義は[A-Za-z]{3,}とする予定で、単語の間はカンマやハイフン、セミコロンなどもあり。
前後が[^A-Za-z]だけだと行頭行末がダメ。。。


373 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:23:48 ]
>>372
\b

374 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:28:09 ]
非語境界ってやつだな。

375 名前:372 mailto:sage [2008/01/14(月) 22:28:22 ]
>>373
ありがとう。知らんかった。首吊ってくるわ。。。

376 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:41:54 ]
イ`

377 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:44:30 ]
\sはタブにもマッチするな
まあ既に>>368が言ってるけど

378 名前:デフォルトの名無しさん [2008/01/17(木) 16:41:25 ]
こんにちは。質問です。

@book{sagan:1954,
author = {Fran\c{c}ois Sagan},
title = {Bonjour Tristesse}
}

こんな感じの文字列(BibTeX)を取り込んでハッシュにするためには
どのような正規表現を用いればよいでしょうか。

ポイントは
 1. コンマで分割する。
 2. {}の中のコンマは無視する。
というあたりだと思うのですが、特に括弧の入れ子をどう処理するかで困っています。

使用言語はRubyです。よろしくお願いします。

379 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 19:22:45 ]
正規表現は再帰をあつかえない。即ち括弧の対応を確かめることが出来ない。
上限をハードコードするなら可能ではあるが、普通にパーサを書いたほうがいいと思う。

380 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 21:31:48 ]
新しいPerlへようこそ



381 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 13:21:50 ]
>>380
新しい Perl でも、正規表現 *だけ* では無理じゃね?

382 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:34:46 ]
ソースコードやXMLはネスト構造を持つから正規表現は向かないよな。
Javaとかもソースコードパーサー用の汎用クラスがあるけど、何故か使われなかったり。
BNF法の知識がデベロッパレベルで浸透してないから、無理も無いけど。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<160KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef