探検
正規表現
■ このスレッドは過去ログ倉庫に格納されています
1正規表現
NGNG 正規表現
NGNG
NGNG
[ ] のなかに '-' と ']' の両方を入れたい場合はどうすればいいのですか?
NGNG
>>271
何で?
何で?
NGNG
>>271
[]-]
[]-]
NGNG
>>271
!.-[
!.-[
NGNG
保守
NGNG
regexp ml盛り上がってますね。読んでて楽しい。
NGNG
このスレはいつからまともな人たちをヲチするようになったのですか?
NGNG
すいません、テキストファイルの中の .bananaなどの単語(行頭ではなく)の先頭が
ドットがあるものだけをgrepで抜き出したいのですが、jp.appleのような単語までひっかかって
しまい上手く絞り込めません。
アドバイスをお願いします!!
ドットがあるものだけをgrepで抜き出したいのですが、jp.appleのような単語までひっかかって
しまい上手く絞り込めません。
アドバイスをお願いします!!
NGNG
NGNG
NGNG
ls -la | grep ' \.'
ではあかんの?
ではあかんの?
NGNG
>>281
行のどこかに"."があれるとヒットしてしまうんです
行のどこかに"."があれるとヒットしてしまうんです
NGNG
ls -la | grep '^\.'
こういうこと?
こういうこと?
NGNG
285283
NGNG 間違えた。
ls -1a | grep '^\.'
これか
ls -la | grep ' \.'
これだな。下は余計なものを拾う可能性もあるが。
ls -1a | grep '^\.'
これか
ls -la | grep ' \.'
これだな。下は余計なものを拾う可能性もあるが。
NGNG
ls -d .*
なんてね。
なんてね。
NGNG
あ、正規表現スレだった。すまん。
NGNG
ヤハリココハオモッテタトオリバカバッカリダッタナ(プ
NGNG
ls -la | awk '$9 ~ /^\./{print $0}' はどうよ。
290名無しさん@お腹いっぱい。
NGNG >>280 ふつーそういうときは ls つかわず findつかえ。
find ./ -type f -name "\.*" -print
find ./ -type f -name "\.*" -print
NGNG
(())
NGNG
>>290 ふつーそういうときは >> つかわず >> つかえ。
NGNG
backreferenceを前方参照と訳したのはなぜですか?
NGNG
後方参照としている訳もあるよ。
まぁ、現在の位置よりも前を参照するという意味では
日本語的には前方参照であってると思う。
ようするに「今いる位置より戻って参照」って意味になるんだから。
んでも、意味を考えて訳すなら「戻って参照」とか、どう?
まぁ、現在の位置よりも前を参照するという意味では
日本語的には前方参照であってると思う。
ようするに「今いる位置より戻って参照」って意味になるんだから。
んでも、意味を考えて訳すなら「戻って参照」とか、どう?
NGNG
>>294
ちょっと前にCスレで話題になったんだけど、Cで「前方参照」といった場合の前方って、
ファイルの終端方向を指す。「ひどい訳語だ」ってことで話は終わったんだけど、
正規表現でも混乱が見られるしなんかいい言葉ないもんかねえ。
日本語では時間を表す文脈で「前」にまるで正反対の意味があるからよくないのだと思う。
「以前」だと過去だし「前進」だと未来だし。
あとこれはすれ違いか? そうだよね。すまん。
ちょっと前にCスレで話題になったんだけど、Cで「前方参照」といった場合の前方って、
ファイルの終端方向を指す。「ひどい訳語だ」ってことで話は終わったんだけど、
正規表現でも混乱が見られるしなんかいい言葉ないもんかねえ。
日本語では時間を表す文脈で「前」にまるで正反対の意味があるからよくないのだと思う。
「以前」だと過去だし「前進」だと未来だし。
あとこれはすれ違いか? そうだよね。すまん。
NGNG
NGNG
おれは初版も新しいのも持ってるけど、自分の知識に自信がないうちは
お薦めしない。もちろんあったらあったで便利だけど。
やっぱり、「俺、正規表現バリバリだぜーYAH」状態で買って読んで
目からうろこ落ちまくり感を堪能するのがいいんではないかと。
お薦めしない。もちろんあったらあったで便利だけど。
やっぱり、「俺、正規表現バリバリだぜーYAH」状態で買って読んで
目からうろこ落ちまくり感を堪能するのがいいんではないかと。
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
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 自民 国会議員の歳費 月額5万円引き上げ 今国会での成立目指す [どどん★]
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認★2 [七波羅探題★]
- 相次ぐ中国公演中止に、シンガーソングライターらが続々高市首相に怒り表明「隣国の仲間たちに対して申し訳ない」★3 [muffin★]
- 東京・足立区の盗難車死亡ひき逃げ事件 11人死傷のうち死亡した男女の身元を発表 80代の男性と20代フィリピン国籍の女性 警視庁 [どどん★]
- 志らく、高市首相を批判する人々は「日本人じゃないの?」SNSで賛否 野党議員が一斉批判「差別発言」「非国民扱いするコメンテーター」 [muffin★]
- 《降板の申し出が》「平手友梨奈は出ません」ムロツヨシの「弁護士ドラマ」から“バディ”が消える!連ドラ撮影中にも遅刻、欠席… [Ailuropoda melanoleuca★]
- 2歳保育園児『🐻クマちゃんがいた!』保育士『🐶ワンちゃんか🐱ネコちゃんだね』嘘をついて園児を誘導😨 [718678614]
- 話ガール
- 前橋市長がやっぱり可愛い
- つなぎばっかり着てるけどどんなイメージ?
- 今日できしぬ!さよなら!
- 童貞ワイ「FC2の女エロすぎやろ!」シコシコ 男優「パンツ汚れてるねえw」←汚パンツが映る
