[過去ログ]
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g (989レス)
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g http://tamae.5ch.net/test/read.cgi/php/1069245758/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
271: nobodyさん [sage] 04/02/24 21:22 ID:??? >>270 egrep -iw "^[a-z0-9./]{6,10}" 途方に暮れて質問させていただいた直後に我に返りました。 wというコマンドを使えば出来ました。 スレ汚し失礼しました…。 http://tamae.5ch.net/test/read.cgi/php/1069245758/271
272: 270 [] 04/02/24 23:35 ID:1VWZCh18 スミマセン…もう一度質問させてください…。 http://koho.ktplan.jp/tango/y.html ここを例にして説明します。 上のサイトを開いて、全部選択してテキストにコピペしてy.txtとして保存。 この中から、6文字以上、10文字以下の英単語だけを抜き取ろうとしています。 $ egrep -iw "^[a-z]{6,10}" y.txt とすると、 English NaviHome0INDEX1 HELP2 Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz基本的な英単語 Y yesterday yourself Copyright c 2001-2004 English Navi All Rights Reserved という結果になります。 English NaviHome0INDEX1 HELP2 Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz基本的な英単語 Y と Copyright c 2001-2004 English Navi All Rights Reserved の部分が、どうしても引っかかってきてしまいます。 上の書き方だと、間にスペースが入っているものとかを排除できないことは分かったのですが、どうすれば目的の文字数の単語だけが抜き出せるのか…頭がパンパンになって来ました。。。 上手く抜き出すことが出来る正規表現の書き方を教えてください。 よろしくお願いします。 http://tamae.5ch.net/test/read.cgi/php/1069245758/272
273: nobodyさん [sage] 04/02/24 23:40 ID:??? grepて$つかえたっけ Perlだと /^[a-z]{6,10}$/i で、できるかもしれない。 http://tamae.5ch.net/test/read.cgi/php/1069245758/273
274: 270 [sage] 04/02/24 23:46 ID:??? >>273 即レスありがとうございます…。 $ egrep -iw "^[a-z]{6,10}+$" y.txt $ egrep "/^[a-z]{6,10}$/i" y.txt 共にだめでした…。 悩んでみます。 http://tamae.5ch.net/test/read.cgi/php/1069245758/274
275: nobodyさん [sage] 04/02/24 23:52 ID:??? egrep -iw "^[a-z]{6,10}$" y.txt じゃないのかと。 http://tamae.5ch.net/test/read.cgi/php/1069245758/275
276: 270 [sage] 04/02/25 00:11 ID:??? >>275 あ、スミマセン。。。 egrep -iw "^[a-z]{6,10}$" y.txt です。 何も起きないのです…。 http://tamae.5ch.net/test/read.cgi/php/1069245758/276
277: nobodyさん [sage] 04/02/25 00:19 ID:??? 正規表現メモによると、egrepでは{n,m}をサポートしていないそうだ。 grepなら{n.m}をサポートしているみたいだが。 http://tamae.5ch.net/test/read.cgi/php/1069245758/277
278: 270 [sage] 04/02/25 00:22 ID:??? >>277 egrepだと、とりあえず>>272の状態まではたどり着くのですが、 $ grep -iw "^[a-z]{6,10}" y.txt これだと何も起きないのです…。 そもそもgrepやegrepだと無理…なのかな…。 http://tamae.5ch.net/test/read.cgi/php/1069245758/278
279: nobodyさん [sage] 04/02/25 00:42 ID:??? FreeBSDだけど、こんな感じだよ。 $ egrep -iw "^[a-z]{6,10}$" y.txt yesterday yourself $ egrep -V egrep (GNU grep) 2.4d http://tamae.5ch.net/test/read.cgi/php/1069245758/279
280: 270 [sage] 04/02/25 01:07 ID:??? >>279 FreeBSD、ググッテ見ましたが、自分にはよく理解できませんでした。 自分は http://sources.redhat.com/cygwin/ このcygwinというのを使用しています。 $ egrep -V egrep (GNU grep) 2.5 と言うことでした。 つまり、これでは出来ない、ということですかね…。 ありがとうございました。 もうちょっとだけ色々考えてみます。 Copyright c 2001-2004 English Navi All Rights Reserved ↑こういうのが引っかかってくるようだと、英文ページから抜き取ることが出来ないですもんね…。 例としたサイトは辞書形式で、単語ごとに改行があったから何とかなったのか…。 http://tamae.5ch.net/test/read.cgi/php/1069245758/280
281: nobodyさん [sage] 04/02/25 02:25 ID:??? >>280 man egrep して、冒頭を 100遍読んでみ。 http://tamae.5ch.net/test/read.cgi/php/1069245758/281
282: 281 [sage] 04/02/25 02:28 ID:??? あ、すまん、何か勘違いしてた。スルーしてくれ。 http://tamae.5ch.net/test/read.cgi/php/1069245758/282
283: 281 [sage] 04/02/25 02:33 ID:??? お詫びといってはナンだが、これでどう? 前の [[:space:]]* は余計かも知れないけど。 $ egrep -iw "^[[:space:]]*[a-z]{6,10}[[:space:]]*$" y.txt http://tamae.5ch.net/test/read.cgi/php/1069245758/283
284: 270 [sage] 04/02/25 02:48 ID:??? >>283 遅くにスミマセン…調べ調べて、 $ grep "^[a-z0-9./]\{6,10\}" y.txt これで出来ました…。 本当に出来てるのか、検証していきたいと思います。 $ egrep -iw "^[[:space:]]*[a-z]{6,10}[[:space:]]*$" y.txt これでも出来ました!まずは…この意味を解読することから勉強して行きたいと思います…。 昨日cygwin入れてみて、初めてgrep使って…頭がパンパンです。・゚・(ノД`)・゚・。 オヤスミナサイ! http://tamae.5ch.net/test/read.cgi/php/1069245758/284
285: 270 [sage] 04/02/25 02:50 ID:??? >>284 訂正! $ grep -iw "^[a-z0-9./]\{6,10\}" y.txt でした! |彡サッ http://tamae.5ch.net/test/read.cgi/php/1069245758/285
286: 270 [sage] 04/02/25 03:34 ID:??? $ grep "^[a-z0-9./]\{6,10\}" y.txt $ egrep -iw "^[[:space:]]*[a-z]{6,10}[[:space:]]*$" y.txt どちらを使っても、y.txtの中の改行をすべて空白に変えてみて、一面単語の海にすると取り出せないですね…。 もう諦めてマジ寝ます。 また明日悩みます。 http://tamae.5ch.net/test/read.cgi/php/1069245758/286
287: 281 [sage] 04/02/25 04:30 ID:??? >>286 それこそ、man egrep して、冒頭を 100遍読んでみ。 ていうか、grep でそれやるなら、 逆に、空白をすべて改行に変えてみた方が取り出しやすいと思われ。 http://tamae.5ch.net/test/read.cgi/php/1069245758/287
288: nobodyさん [] 04/02/25 14:02 ID:12gYevYJ PERLで 予約語が行にあったら文字で挟んで置き換えるという処理なんですが $ReplaceStr = $left . $word . $right; $line =~ s/(\W)$word(\W)/$1$ReplaceStr$2/g; だと行頭と行末が正しく置換できないです。どうすればいいんでしょうか? http://tamae.5ch.net/test/read.cgi/php/1069245758/288
289: nobodyさん [sage] 04/02/25 14:32 ID:??? s/\b$word\b/$left$word$right/g; http://tamae.5ch.net/test/read.cgi/php/1069245758/289
290: nobodyさん [] 04/02/25 17:55 ID:12gYevYJ >>289 ありがとうございます! こんな便利なキャラクタがあったんですね! それぞれ予約語の配列にforeachかけてやってたんですが 速度的にはこっちの方が速くなるんでしょうか? chomp(@ReserveWords); $MachWords = join("|",@ReserveWords); foreach $line(@inputlines){ $line =~ s/\b$MachWords\b/$left$&$right/g; } http://tamae.5ch.net/test/read.cgi/php/1069245758/290
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 699 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s