正規表現
■ このスレッドは過去ログ倉庫に格納されています
1正規表現
NGNG 正規表現
NGNG
単一の正規表現でないと記述が冗長で見た目がキモイ、
っていうのはあると思うよ。
おいらはインストール直後のFreeBSDの環境構築をスクリプトに任せたくて、
結局シェルスクリプトにawkな記述を書いて解決した。
カーネルの再構築にしても、/etc/下の記述にしても、要はテキストの置換なわけで。
本当はrubyがFreeBSDの/usr/bin下にあるようなご時世だったら
楽ができるんだけど、そこら辺は個人的な勉強不足だなぁ。
っていうのはあると思うよ。
おいらはインストール直後のFreeBSDの環境構築をスクリプトに任せたくて、
結局シェルスクリプトにawkな記述を書いて解決した。
カーネルの再構築にしても、/etc/下の記述にしても、要はテキストの置換なわけで。
本当はrubyがFreeBSDの/usr/bin下にあるようなご時世だったら
楽ができるんだけど、そこら辺は個人的な勉強不足だなぁ。
321名無しさん@お腹いっぱい。
NGNG {a,b}上の言語Lが
『aaで開始し、かつ、bbを部分列として含む』という条件を満たす語からなるとき
Lを表す正規表現ってどうなるの?
L=aa(a*b*+bb)* ?
『aaで開始し、かつ、bbを部分列として含む』という条件を満たす語からなるとき
Lを表す正規表現ってどうなるの?
L=aa(a*b*+bb)* ?
NGNG
L=aa(a+b)*bb(a+b)*
NGNG
>>321
*+ ???
*+ ???
NGNG
>323
'+'より'|'のほうが普通かな。
L=aa(a|b)*bb(a|b)*
本来的には連接、選択、閉包が表現できればいい。
'+'より'|'のほうが普通かな。
L=aa(a|b)*bb(a|b)*
本来的には連接、選択、閉包が表現できればいい。
NGNG
L ::= aA
A ::= aB
B ::= aB | bC
C ::= aB | bD
D ::= ε | aD | bD
A ::= aB
B ::= aB | bC
C ::= aB | bD
D ::= ε | aD | bD
NGNG
.*
何にでもマッチする最強の正規表現です!
何にでもマッチする最強の正規表現です!
327名無しさん@お腹いっぱい。
NGNGNGNG
キター
NGNG
ageてるし、ネタと見た。
NGNG
>>329
しね!
しね!
331あぼーん
NGNGあぼーん
332あぼーん
NGNGあぼーん
333名無しさん@お腹いっぱい。
NGNG うまづら。
NGNG
ほす。
NGNG
☆湯
NGNG
[ruby-list:38393] じゃないけど、[a-z] みたいな文字クラスの表現は、
EBCDIC とかだと「意図した通り」には動かないと思うんだけど、
ASCII か ASCII を包含したキャラクタセットという前提で書くべきものなの?
EBCDIC とかだと「意図した通り」には動かないと思うんだけど、
ASCII か ASCII を包含したキャラクタセットという前提で書くべきものなの?
NGNG
>>336
[:lower:] とかは使っちゃだめ?
[:lower:] とかは使っちゃだめ?
NGNG
NGNG
★
NGNG
保守
341名無しさん@お腹いっぱい。
NGNG vimで"DEL"という文字列が含む行で、"DEL"以下を削除したい場合はどうしたらいいでしょうか?
NGNG
343名無しさん@お腹いっぱい。
NGNG :%s/DEL.*//
NGNG
>>343
サンクス、すみません。
サンクス、すみません。
NGNG
☆
346名無しさん@お腹いっぱい。
NGNG >>343
DELは残したい場合はどうすればいいですか?
DELは残したい場合はどうすればいいですか?
NGNG
:%s/DEL.*/DEL/
348名無しさん@お腹いっぱい。
NGNG MS-DOSが使われていた頃に、"mifes"と言うエディターが有った。
そのマニュアルに1頁ほどの正規表現の説明があって、自分は最初に、それで
覚えて使い出した。
使い始めの頃は、何回も間違えたけど、少しづつ慣れてきた。
自分の周りを見ても、プログラマを何年もやっていても正規表現を知らない
人は、結構いる。
一旦、覚えてしまうと非常に便利だと思うんだけど。
そのマニュアルに1頁ほどの正規表現の説明があって、自分は最初に、それで
覚えて使い出した。
使い始めの頃は、何回も間違えたけど、少しづつ慣れてきた。
自分の周りを見ても、プログラマを何年もやっていても正規表現を知らない
人は、結構いる。
一旦、覚えてしまうと非常に便利だと思うんだけど。
349名無しさん@お腹いっぱい。
NGNG 正規表現で俺の存在を抹消してくれ。
NGNG
s/俺の存在//g;
NGNG
gsub!(/俺の存在/, "")
NGNG
捕手
NGNG
rー、
」´ ̄`lー) \
T¨L |_/⌒/
`レ ̄`ヽ〈
| i__1
_ゝ_/ ノ
L__jイ´_ )
| イ
| ノ--、 r'⌒ヽ_
ゝ、___ノ二7 /´ ̄l、_,/}:\
|ーi | l_/ /__ィ::. ゝ~_ィ´:; ,ゝ
__〉 { (T´ |1:::. \_>、};;_」
'ー‐┘ ! ` ̄''ァ一 、\ ヽ} ← 保守
〈` ̄ ̄^`¬ノ .::〔 ̄´
1 ヽ .:::レ ヽ、
|_イー-、_;;j|_:. ゝ、
__,,,... -- |. {―――‐フゝ、 〉 -- ...,,,__
_,, -‐ ´ ,r|__ト, 1ニノ ー'´ ` ‐- ,,_
, ‐ ´ └―'´ `
」´ ̄`lー) \
T¨L |_/⌒/
`レ ̄`ヽ〈
| i__1
_ゝ_/ ノ
L__jイ´_ )
| イ
| ノ--、 r'⌒ヽ_
ゝ、___ノ二7 /´ ̄l、_,/}:\
|ーi | l_/ /__ィ::. ゝ~_ィ´:; ,ゝ
__〉 { (T´ |1:::. \_>、};;_」
'ー‐┘ ! ` ̄''ァ一 、\ ヽ} ← 保守
〈` ̄ ̄^`¬ノ .::〔 ̄´
1 ヽ .:::レ ヽ、
|_イー-、_;;j|_:. ゝ、
__,,,... -- |. {―――‐フゝ、 〉 -- ...,,,__
_,, -‐ ´ ,r|__ト, 1ニノ ー'´ ` ‐- ,,_
, ‐ ´ └―'´ `
NGNG
>>353
それ捕手じゃなくて投手やっ!www
それ捕手じゃなくて投手やっ!www
NGNG
別のスレからの引用
ps ax |grep '[s]shd'
とやると、grep自身の行にヒットしないそうだけど、なぜ?
sってメタ文字でもなんでもないのに。
ps ax |grep '[s]shd'
とやると、grep自身の行にヒットしないそうだけど、なぜ?
sってメタ文字でもなんでもないのに。
NGNG
なぜって言われても、自明だが。
NGNG
grep sshd と何が違うの?
NGNG
あ、ごめん、わかった(w
NGNG
grep sshd だと、ps の出力に含まれる "grep sshd" の "sshd" がマッチする。
grep '[s]shd' だと、ps の出力には "grep [s]shd" が含まれるが、
この "[s]shd" は、[s]shd にはマッチしない。よね?わかる?
grep '[s]shd' だと、ps の出力には "grep [s]shd" が含まれるが、
この "[s]shd" は、[s]shd にはマッチしない。よね?わかる?
NGNG
なるほど。トリックだな。
NGNG
NGNG
そこまでのものではないと思うけど、
この例だと、頭の中でpsの出力まで加工しちゃうからな(w
この例だと、頭の中でpsの出力まで加工しちゃうからな(w
NGNG
grep -v grep でええやん。
NGNG
muttのaliasで
alias keyword Name <mailaddress>
みたいなフォーマットで並んでいるファイルを
alias keyword <mailaddress> # Name
に整形しようと思い,
cat alias | sed 's![[:space:]]*alias[[:space:]]*\([^[:space:]]*\)[[:space:]]*\(.*\)[[:space:]]*<\(.*\)>!alias \1 <\3> # \2!' > alias.new
としました.
上手く行くんですが, "#" の位置が行ごとにバラバラなのが気持ち悪いです.
そのファイルで "#" 以前の文字数が一番長いものを調べ, そこに合わせて
その他の行の "#" 以降を持ってくるようにするにはどうすればいいんでしょうか?
alias keyword Name <mailaddress>
みたいなフォーマットで並んでいるファイルを
alias keyword <mailaddress> # Name
に整形しようと思い,
cat alias | sed 's![[:space:]]*alias[[:space:]]*\([^[:space:]]*\)[[:space:]]*\(.*\)[[:space:]]*<\(.*\)>!alias \1 <\3> # \2!' > alias.new
としました.
上手く行くんですが, "#" の位置が行ごとにバラバラなのが気持ち悪いです.
そのファイルで "#" 以前の文字数が一番長いものを調べ, そこに合わせて
その他の行の "#" 以降を持ってくるようにするにはどうすればいいんでしょうか?
NGNG
sedでやれってか?
漏れはへたれなので、Perlなどを使ってしまうが(w
漏れはへたれなので、Perlなどを使ってしまうが(w
NGNG
>>364
2パスでやれば?
2パスでやれば?
NGNG
2パス?
NGNG
>>367
"#" 以前が一番長いのを調べてから、それに合わせて整形し直せば。
"#" 以前が一番長いのを調べてから、それに合わせて整形し直せば。
NGNG
NGNG
決め打ちでいいなら何の苦労もないわけで。
NGNG
>>369
反則技。gawk で。sed ではどうやっても出来ないような気が……(_ _;)
# sed でできるのか?
{
a=index($0,"#");
if(a>best) {
best=a;
}
c[FNR]=$0
}
END {
for(i=0;i<=NR;i++){
x=index(c[i],"#");
if(x && x<best) {
for (j=x;j<best;j++) {
gsub("#"," #",c[i]);
}
}
print c[i]
}
}
反則技。gawk で。sed ではどうやっても出来ないような気が……(_ _;)
# sed でできるのか?
{
a=index($0,"#");
if(a>best) {
best=a;
}
c[FNR]=$0
}
END {
for(i=0;i<=NR;i++){
x=index(c[i],"#");
if(x && x<best) {
for (j=x;j<best;j++) {
gsub("#"," #",c[i]);
}
}
print c[i]
}
}
NGNG
( ´∀`)
NGNG
保守
374名無しさん@お腹いっぱい。
NGNG 教えてください。
Windows用のファイルをemacsなんかで開いたとき,最下行に
^Z
という符号が表示されることがあります。
これはいったい何でしょうか?
Windows用のファイルをemacsなんかで開いたとき,最下行に
^Z
という符号が表示されることがあります。
これはいったい何でしょうか?
NGNG
いわゆるeof
NGNG
>>375
ありがとうございます。この符号のあるファイル同士をcatで連結すると,途
中にこの符号が入ってしまいます。この符号をsedでマッチさせて消去したい
のですが,どうすればいいでしょうか。
sed '/^$/d' ではダメでした。
ありがとうございます。この符号のあるファイル同士をcatで連結すると,途
中にこの符号が入ってしまいます。この符号をsedでマッチさせて消去したい
のですが,どうすればいいでしょうか。
sed '/^$/d' ではダメでした。
NGNG
>>376
いわゆるeof
いわゆるeof
378名無しさん@お腹いっぱい。
NGNG EOF符号をsedで消去できますか?
NGNG
grep で使える正規表現を精密に解説したサイトはありますかね?
日本語/英語どっちでもいいのですが。
日本語/英語どっちでもいいのですが。
NGNG
http://www.kt.rim.or.jp/~kbk/regex/regex.html
NGNG
レベル低いなー
378に対して出来るとも出来ないとも言えないのか...
378に対して出来るとも出来ないとも言えないのか...
NGNG
378=381 ですか?
NGNG
384338
NGNG でね、特殊記号の特別なケースがtab。大昔は\tなんて表現なかったさ。
よく画面上の見た目やハードコピーや雑誌からシェルスクリプトを打ち直して、
tabとspaceの違いで動かないなんてことが時々あったんだよ。
あと勝手にシェルスクリプトを整形されて動かなくなるとか。
よく画面上の見た目やハードコピーや雑誌からシェルスクリプトを打ち直して、
tabとspaceの違いで動かないなんてことが時々あったんだよ。
あと勝手にシェルスクリプトを整形されて動かなくなるとか。
NGNG
NGNG
NGNG
>>380
ブックマークにいれますた。
ブックマークにいれますた。
388名無しさん@お腹いっぱい。
NGNG [\\w$'-]
これはどういうことなのでしょう?
[\w$'-]
ならわかるのですが..
これはどういうことなのでしょう?
[\w$'-]
ならわかるのですが..
NGNG
>>388
処理系は何?
処理系は何?
390名無しさん@お腹いっぱい。
NGNGNGNG
>>390
ほほう。バグってる悪寒。
ほほう。バグってる悪寒。
NGNG
Regexp::compile("\\b\\d[\\d\\.,]+\\d\\b")
こんなのがあるんですが..
こんなのがあるんですが..
NGNG
NGNG
NGNG
perl で質問です。
NOTE note "note" notes
上のような文字列を「book」だけを「note」に置換したいのですが
s/\bnote\b/book/g
のようにすると、ダブルクォートで囲まれているものも置換されてしまうのですが
それを
NOTE book "note" notes
のようにするにはどう表記すればよいのでしょうか?
詳しい方、教えてください。
NOTE note "note" notes
上のような文字列を「book」だけを「note」に置換したいのですが
s/\bnote\b/book/g
のようにすると、ダブルクォートで囲まれているものも置換されてしまうのですが
それを
NOTE book "note" notes
のようにするにはどう表記すればよいのでしょうか?
詳しい方、教えてください。
NGNG
NGNG
NGNG
NGNG
NGNG
>>397
> とはいえ、仕様があいまいすぎ。
すいません、おっしゃるとおりです。
ある単語(note)をある単語(book)に置換したいのですが、
ダブルクォートで囲まれているもの("note")は、その置換からは除外したいのです。
> 'note' はどうする? :note: は? "abc note def" は?
したがいまして、これらはとりあえず想定外で構わないので置換してしまっても構いません。
もう少し昨日の例を詳しく書きますと
NOTE,note"note"notes-note
このようなものでも
NOTE,book"note"notes-book
のようになってくれるのを期待しています。
ただ、"abc note def" これも想定外で構わないのですが
対応が可能であるのなら、私の勉強の為に教えてくださるとありがたく思います。
>>399
ありがとうございます。
>s/(?=[^"])\bnote\b(?=[^"])/book/g;
これを試してみました。
基本的にOKかなと思ったのですが、行頭、行末では置換の対象となってくれませんでした。
> とはいえ、仕様があいまいすぎ。
すいません、おっしゃるとおりです。
ある単語(note)をある単語(book)に置換したいのですが、
ダブルクォートで囲まれているもの("note")は、その置換からは除外したいのです。
> 'note' はどうする? :note: は? "abc note def" は?
したがいまして、これらはとりあえず想定外で構わないので置換してしまっても構いません。
もう少し昨日の例を詳しく書きますと
NOTE,note"note"notes-note
このようなものでも
NOTE,book"note"notes-book
のようになってくれるのを期待しています。
ただ、"abc note def" これも想定外で構わないのですが
対応が可能であるのなら、私の勉強の為に教えてくださるとありがたく思います。
>>399
ありがとうございます。
>s/(?=[^"])\bnote\b(?=[^"])/book/g;
これを試してみました。
基本的にOKかなと思ったのですが、行頭、行末では置換の対象となってくれませんでした。
NGNG
NGNG
もっと簡単にできるかもしれないけど、
s/(^|(?<=[^\w"]))note\b|\bnote($|(?=[^\w"]))/book/g;
とかは?
> ただ、"abc note def" これも想定外で構わないのですが
後ろから数えた"の個数が奇数ならマッチしないようにして、
$b =~ s/\bnote\b(?=([^"]*"[^"]*")*[^"]*$)/book/g;
とすれば、"のマッチングが保証できる範囲ではなんとかなるかも。
前からの"の個数でマッチさせようとしたら、
可変長のlook-behindは実装してないらしい。(perl 5.8)
s/(^|(?<=[^\w"]))note\b|\bnote($|(?=[^\w"]))/book/g;
とかは?
> ただ、"abc note def" これも想定外で構わないのですが
後ろから数えた"の個数が奇数ならマッチしないようにして、
$b =~ s/\bnote\b(?=([^"]*"[^"]*")*[^"]*$)/book/g;
とすれば、"のマッチングが保証できる範囲ではなんとかなるかも。
前からの"の個数でマッチさせようとしたら、
可変長のlook-behindは実装してないらしい。(perl 5.8)
NGNG
s/"note"/hogehoge/g
s/note/book/g
s/hogehoge/"note"/g
おれならこうしちゃうな。
考えんのめんどい。
s/note/book/g
s/hogehoge/"note"/g
おれならこうしちゃうな。
考えんのめんどい。
NGNG
405名無しさん@お腹いっぱい。
NGNG 質問させてください。
&にはマッチして欲しいのですが、&にはマッチして欲しくないのです。
どのように記述すればよいのでしょう。
お願いします。
&にはマッチして欲しいのですが、&にはマッチして欲しくないのです。
どのように記述すればよいのでしょう。
お願いします。
406405
NGNG &にはマッチ
&amp;にはマッチしない
でした。すいません。
&amp;にはマッチしない
でした。すいません。
NGNG
>>405
Perl5 でいい?
Perl5 でいい?
NGNG
>>405
/&(?!amp;)/
/&(?!amp;)/
NGNG
正規表現のおすすめ書って何がありますか?
NGNG
オライリーのやつ。
411名無しさん@そうだ選挙に行こう
NGNG ワイルドカード(DOS)の *.txt って、正規表現だとどう書くの?
NGNG
{(([0-9a-zA-Z]){0,})\.txt}とか半端に返してみるテスト
NGNG
[^\\/]+\.[Tt][Xx][Tx]\z とか (ry
NGNG
foo と bar 両方含む行をマッチさせたいんだけど、
awkでいうところの and演算子
% awk /foo/&&/bar/
が使える、windowsで動くgrepツールなんか教えてください。
#絞込み再検索のないGUIなgrepツールなんかイラネ
awkでいうところの and演算子
% awk /foo/&&/bar/
が使える、windowsで動くgrepツールなんか教えてください。
#絞込み再検索のないGUIなgrepツールなんかイラネ
415名無しさん@お腹いっぱい。
NGNGNGNG
NGNG
>>414
|が使えるツールなら、/foo.*bar|bar.*foo/とかで近似できるんじゃないの。
CygwinのGNU grepで試してみた。
> cat foobar.txt
foo
bar
foo foo
foo bar
bar bar
bar foo
> grep -n "foo.*bar\|bar.*foo" foobar.txt
4:foo bar
6:bar foo
>
|が使えるツールなら、/foo.*bar|bar.*foo/とかで近似できるんじゃないの。
CygwinのGNU grepで試してみた。
> cat foobar.txt
foo
bar
foo foo
foo bar
bar bar
bar foo
> grep -n "foo.*bar\|bar.*foo" foobar.txt
4:foo bar
6:bar foo
>
418414
NGNG なるほど、andをorに展開すればいいのか。
しかし fooかつbarかつbazを検索、つーばあい展開すんのめんどくさいなぁ。
windowsのGUIなgrepツールは、サブフォルダも検索、とかできて
結構便利なのも歩けど、パイプとかorが使えなかったりしてイマイチ。
結局cygwinでawk使ってるけど、これもいまひとつメンドクサイ。
2chのログを検索してるだけなんだが_| ̄|○
しかし fooかつbarかつbazを検索、つーばあい展開すんのめんどくさいなぁ。
windowsのGUIなgrepツールは、サブフォルダも検索、とかできて
結構便利なのも歩けど、パイプとかorが使えなかったりしてイマイチ。
結局cygwinでawk使ってるけど、これもいまひとつメンドクサイ。
2chのログを検索してるだけなんだが_| ̄|○
NGNG
>>418
xyzzy の ggrep 辺りがいいんじゃない?
xyzzy の ggrep 辺りがいいんじゃない?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 [ごまカンパチ★]
- たぬかな、結婚していた SNSで報告 生配信では入籍時期も説明 祝福殺到「おめでとう!」「幸あれ」 [muffin★]
- 【高市関税キター!!】個人輸入・少額輸入品への税優遇見直しへ…中国の通販サイトなどからの大量輸入を懸念 [1ゲットロボ★]
- 自民 国会議員の歳費 月額5万円引き上げ 今国会での成立目指す [どどん★]
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認★2 [七波羅探題★]
- 「車を処分してください」生活保護の窓口 取材で見えた利用者の実情 [少考さん★]
- 高市、海外ではヒトラーの扱いになっていた [805596214]
- 自民党閣僚関係者「党内外問わず高市総理に批判的なことを言える空気ではない」 [834922174]
- 【動画】慶應准教授の有野氏、高市答弁の問題点を理路整然と指摘しまいネトウヨ発狂wwwwwwwwwwww [271912485]
- ( ・᷄ὢ・᷅ )誰が髪なきスカトロレットやねん!
- おっさんをハチから守るゲームの広告wwwwwww
- 寒い!
