探検
正規表現
■ このスレッドは過去ログ倉庫に格納されています
1正規表現
NGNG 正規表現
298名無しさん@お腹いっぱい。
NGNG >294
するってえと、正規表現的には日本語で前方参照あるいは後方参照と書いてあったら
どっちもbackreferenceと思えってわけだぁね。
>295
計算機分野だと「前方」という言葉はforwardの訳語というのがあたりめえだと思ってたから、
正規表現関係だと、「前方参照」がbackreferenceのことだっていうのがわかんなくて
難儀したってわけよ。
するってえと、正規表現的には日本語で前方参照あるいは後方参照と書いてあったら
どっちもbackreferenceと思えってわけだぁね。
>295
計算機分野だと「前方」という言葉はforwardの訳語というのがあたりめえだと思ってたから、
正規表現関係だと、「前方参照」がbackreferenceのことだっていうのがわかんなくて
難儀したってわけよ。
NGNG
NGNG
301298
NGNG perl5の日本語マニュアルで、「前方参照」を "lookahead assertion"の訳語として
使っているやつがあった。
(?=regexp) 長さの無い、前方参照位置指定子。
(?!regexp) 長さの無い、前方参照否定位置指定子。
英語だと
(?=pattern) A zero-width positive lookahead assertion.
(?!pattern) A zero-width negative lookahead assertion.
わけわかんねぇな(w
使っているやつがあった。
(?=regexp) 長さの無い、前方参照位置指定子。
(?!regexp) 長さの無い、前方参照否定位置指定子。
英語だと
(?=pattern) A zero-width positive lookahead assertion.
(?!pattern) A zero-width negative lookahead assertion.
わけわかんねぇな(w
302298
NGNG ありゃりゃ?
(?<=pattern) A zero-width positive lookbehind assertion.
(?<!pattern) A zero-width negative lookbehind assertion.
"lookbehind assertion" の訳語って何だ?
(?<=pattern) A zero-width positive lookbehind assertion.
(?<!pattern) A zero-width negative lookbehind assertion.
"lookbehind assertion" の訳語って何だ?
NGNG
「俺の背後に立つな」
デューク東郷の格言だろ。
デューク東郷の格言だろ。
NGNG
lookahead 見越し
lookbehind 見返り
lookbehind 見返り
NGNG
前後不覚だな。
NGNG
>>296
>オライリーの正規表現本は買ったほうがいいですか?
持ってなくても覚えられるし、
エディタのサーチとか grep とかで実験しながら
感覚的に慣れるのも悪くないんじゃない?
ただし emacs で覚え始めるのはすすめない。
backslash で混乱する。
>オライリーの正規表現本は買ったほうがいいですか?
持ってなくても覚えられるし、
エディタのサーチとか grep とかで実験しながら
感覚的に慣れるのも悪くないんじゃない?
ただし emacs で覚え始めるのはすすめない。
backslash で混乱する。
NGNG
308あぼーん
NGNGあぼーん
NGNG
310あぼーん
NGNGあぼーん
NGNG
さげ保守
NGNG
313あぼーん
NGNGあぼーん
314高校生
NGNG boo
baa
baz
っていうテキストが例だとして、sedを用いて、
booまたはbaz、っていう正規表現はどうなるの?
rubyやperlならパイプ記号で条件和の表現が出るけど、
同じように書いてもsedに誤解されてしまう。
baa
baz
っていうテキストが例だとして、sedを用いて、
booまたはbaz、っていう正規表現はどうなるの?
rubyやperlならパイプ記号で条件和の表現が出るけど、
同じように書いてもsedに誤解されてしまう。
NGNG
>>314 ん? \|使えば良いのでは
316高校生
NGNG sed 's/boo\|baa/hoge/g' ./hage.txt
とかだとやっぱりだめなんすよね。
「boo」とかの単語の括り方がよくわからんのです。
とかだとやっぱりだめなんすよね。
「boo」とかの単語の括り方がよくわからんのです。
NGNG
GNU sed 4.0.7版 ではそれでもできてるけどな。
sed 's/\(boo\|baa\)/hoge/g' これでどう?
sed 's/\(boo\|baa\)/hoge/g' これでどう?
NGNG
>>317
gsedならできるがsedは食ってくれない。
gsedならできるがsedは食ってくれない。
NGNG
単一の正規表現じゃなきゃいかんの?
sedと決まってるなら
sed -e 's/boo/hoge/g' -e 's/baa/hoge/g'
でいいんちゃう?
置換後の文字列と置換前の文字列の片方とで重なりがある場合
どうするかひとしきりモメたりする ↓↓↓ のがお決まりだな。
sedと決まってるなら
sed -e 's/boo/hoge/g' -e 's/baa/hoge/g'
でいいんちゃう?
置換後の文字列と置換前の文字列の片方とで重なりがある場合
どうするかひとしきりモメたりする ↓↓↓ のがお決まりだな。
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
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認 [七波羅探題★]
- 【インバウンド】中国政府、日本行き航空便の減便指示、2026年3月末まで「当面の措置」 [1ゲットロボ★]
- 【高市関税キター!!】個人輸入・少額輸入品への税優遇見直しへ…中国の通販サイトなどからの大量輸入を懸念 [1ゲットロボ★]
- 「車を処分してください」生活保護の窓口 取材で見えた利用者の実情 [少考さん★]
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認★2 [七波羅探題★]
- 相次ぐ中国公演中止に、シンガーソングライターらが続々高市首相に怒り表明「隣国の仲間たちに対して申し訳ない」★3 [muffin★]
- 【実況】博衣こよりのえちえちFantasy map simulatorミニキャラ死闘編🧪★4
- 【実況】博衣こよりのえちえちFantasy map simulatorミニキャラ死闘編🧪★5
- VIPから🏡スレ潰すために来ました
- たぬかな、結婚していた [268244553]
- 【動画】慶應准教授の有野氏、高市答弁の問題点を理路整然と指摘しまいネトウヨ発狂wwwwwwwwwwww [271912485]
- 【高市悲報】理系、生成AIにより死滅へ Claude開発者「すまん、もう理系のチーズよりA Iの方が賢いねん…」 [339315852]
