正規表現
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG0002みき(^-^) ◆MIKIDyAWSg
NGNG0003デフォルトの名無しさん
NGNGさらにまだスレを立てるのか。
0004デフォルトの名無しさん
NGNG*
ワイルドカード。
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG中のものどれかとマッチ。
0009デフォルトの名無しさん
NGNGマソコ
0010デフォルトの名無しさん
NGNG正規表現
http://pc.2ch.net/test/read.cgi/unix/1039165754/
正規表現道場@2ch Part2
http://pc2.2ch.net/test/read.cgi/php/1038146241/
0011デフォルトの名無しさん
NGNGそれは正規表現じゃないだろ
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGつくろー!!
0016デフォルトの名無しさん
NGNG/'''' '';::.
l ≡ );;;: / ̄ ̄ ̄ ̄ ̄ ̄ ̄
≧〒≦ :;/) | ツマラン!!
iー/ i ー' k.l < おまいの話は
l ノ‐ヘ iJ | ツマラン!!
U乞 し ノ \_______
`ー ‐
0017デフォルトの名無しさん
NGNG(([a-z]+\.([a-z]+\.)*)?([A-Z][a-z]*)+)
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGredundant
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG(([a-z]+\.)*([A-Z][a-z]*)+)
0023デフォルトの名無しさん
NGNG([a-z]+\.)*[A-Z][a-zA-Z]*
数字やアンダスコアは除いてな。
0024デフォルトの名無しさん
NGNG字句解析して細かく検索してるのかな?
0025デフォルトの名無しさん
NGNG単純な方法は、オートマトンを作ってただぐるぐる回すだけ。
0026デフォルトの名無しさん
NGNGO(n^2) ほど掛かりそうだな…
0027デフォルトの名無しさん
NGNGいや、検索対象文字列 n,オートマトン m として O(mn) か
これでも微妙に違うが…
0028デフォルトの名無しさん
NGNGたとえば abcd は
0 aなら goto 1 else goto 0
1 bなら goto 2 else goto 0
2 cなら goto 3 else goto 0
3 dなら Found else goto 0
てなオートマトンになるわけで これは O(n) でしょ?
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG正規表現は途中からのマッチでもいいと思っていた…
0031デフォルトの名無しさん
NGNG検索対象文字列の長さとオートマトンの状態数の双方に依存するはずだから
O(n) はないと思うが…
0032デフォルトの名無しさん
NGNGオートマトンってどんな実装を考えてるのよ?
普通に実装すれば、状態数がどうであれ 比較量は1だ
0033デフォルトの名無しさん
NGNG"aaaaaaaaaaaaaaaaaab" ~= /aaaab/
これのマッチはどうなる?
0034デフォルトの名無しさん
NGNG0 aなら goto 1 else goto 0
1 aなら goto 2 else goto 0
2 aなら goto 3 else goto 0
3 aなら goto 4 else goto 0
4 aなら goto 4 bなら Found else goto 0
4はこう書けば2つの判断が必要に見えるけど オートマトンなんだから表引で1アクションね
0035デフォルトの名無しさん
NGNGバックトラックって知ってますか?
0036デフォルトの名無しさん
NGNGaaaaab はマッチしますか?
0037デフォルトの名無しさん
NGNGどうして、そういう質問を私になさるのでしょうか? 何か話しの流れに関係しますか?
>>36
出来るだけ平易な表現したつもりなんで、追いかけてみれば判ると思うが?
aaaaの段階で 状態4にあり次の a でも状態4、その後のbで終了
0038デフォルトの名無しさん
NGNG一口にオートマトンつっても、NFAとDFAがあるわけで、NFAならバックトラックが必要。
だから、NFAしか知らない奴とDFAしか知らない奴の会話が食い違ってる。
ここの話の流れで「バックトラックって知ってますか?」って聞く奴はNFAしか知らない初心者。
「オートマトンなら1アクションだ」って言い張る奴はNFAを知らない頭でっかち。
0039デフォルトの名無しさん
NGNG従って、現在の主流は1アクションで済むDFAではなく、バックトラックを使うNFAの方だ。
DFAマンセーな奴は知識が古すぎるね。
ほら、あれだろ?Cマガの教科書読んだんだろ?
俺も持ってたよ。
0040デフォルトの名無しさん
NGNG×前方参照を使うような高度な正規表現の場合、DFAでは実装が不可能
○前方参照を使う正規表現の場合、DFAでは構成しなおさなければならなくなる
それから >>31 >>27 に対して説明を書いていたのだが、横から入ったなら説明してあげて下さい。
NFAだろうがDFAだろうが、状態数によって検索時間は増えない事を判り易くね。
NFAなら遷移数により増える事もね
0041デフォルトの名無しさん
NGNG00421 ◆cszrIBzBL2
NGNG0043デフォルトの名無しさん
NGNGどうやってもDFAでは表現できない前方参照が存在する。
NFAならバックトラックが必要なので、検索時間は増える。
勉強しなおしてください。
0044デフォルトの名無しさん
NGNG前方参照でもその時点でDFAを動的に作成すればいいじゃないか。
それはDFAと呼ばないというなら、それでいいけどね。
そんなに用語に拘るなら、NFAという表現でバックトラックを使わない実装もある事もご説明頂いた方がよろしいのでは?
0045デフォルトの名無しさん
NGNGDFAというのは入力に対して遷移先が一つに決まるため、高速な
検索ができるのが特徴。しかし、前方参照の場合、入力が決まらないと
遷移先も決まらないので、DFAではどうしても実現できない場合がある。
入力に従って動的に作成されるオートマトンというのは、入力に従って
遷移先が決まるオートマトンと同じ働きしかしない上、作成のオーバー
ヘッドにより、作成済みのNFAより必ず遅くなる。
もちろん、そんなものをDFAとは呼ばない。
NFAでバックトラックを使わない実装ももちろんあるが、バックトラックを
使ったほうがパフォーマンスが良くなるのに、わざわざそんなものを使う
意味は無いし、バックトラックよりパフォーマンスが悪くなる以上、
「オートマトンなら1アクションだ」とますます言えないことはバカにでも
わかるだろう。
わからなければ勉強しなおしてください。
0046デフォルトの名無しさん
NGNG何をそんなに的外れな事を言って威張り散らしてるの? って感じなんだが?
俺が書いたのはこうだよ
>4はこう書けば2つの判断が必要に見えるけど オートマトンなんだから表引で1アクションね
だいたい、バックトラックを使った方がパフォーマンスが常に良いなんて誰が言ってるんだ?
自分解釈をなさるのは結構だが、まるで常識のように発言すると笑われるよ。
0047デフォルトの名無しさん
NGNGバックトラックよりもパフォーマンスが良くなるアルゴリズムを示してください。
0048デフォルトの名無しさん
NGNGあればすぐにわかるでしょう。
0049デフォルトの名無しさん
NGNG了解、
じゃバックトラックが必要な 正規表現とそのNFAを 一つ書いて下さい。
それをDFAに変換します。
0050デフォルトの名無しさん
NGNG「どんな入力に対しても」という文字が読めませんか?
0051デフォルトの名無しさん
NGNGまるで常識のように発言しましたが、アルゴリズムという言葉は
実際に常識なので、知らなければ勉強しなおしてください。
0052デフォルトの名無しさん
NGNGいちいち作るの?
0053デフォルトの名無しさん
NGNG「NFAを使って」という文字も読めませんか?
0054デフォルトの名無しさん
NGNG>>53
NFA->DFA変換がルール違反とおっしゃるのですか?
DFAならお互いにバックトラックが必要ないことを了解出来てるわけで
NFA->DFAに変換出来る事をもってバックトラックを使わずに可能だと簡単に証明出来るでしょ?
0055デフォルトの名無しさん
NGNGへたれプログラムのわたし。
お茶出すフリくらいしかできません ノ⌒旦~
0056デフォルトの名無しさん
NGNG>NFA->DFAに変換出来る
ってそれは数学的に証明されてるじゃないか
0057デフォルトの名無しさん
NGNG「バックトラックを使わない方が常によい」あるいは
「バックトラックを使わないが常にパフォーマンスの優れたものが作れる」
とは言ってないと思うけど。
>>47 は日本語を勉強してください。
00581 ◆cszrIBzBL2
NGNGいや昨日さ、朝方までネッツムービー見てたのよ
なので、今起きたんだよ
ネッツムービーっつっても、既存のメディアをネットで見たので
正式にはネッツムービーとは言わないのだが・・・
もちろんそこまでして見たいムービーはガンダムに決まってる
0083をとりあえず見ている今から8話目以降を見る
まあ視聴時間は一週間あり、何度見ても料金変わらないので(1話100円)
みんなにも見て欲しい。(IDとパスワードは以下参照)
まあ、楽しんでくれ 感想待ってるからな じゃあな
ユーザID:SuK8V6dq9aJLdarZ6amX
パスワード:********************
0059デフォルトの名無しさん
NGNGおいおい、前方参照って言葉を知ってるか?
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG知らんな。 \1 とかの後方参照とは違うのか?
>>60
どこから効率の話になったんだ? オーダーの話じゃなかったのか?
それでその前方参照ならオーダーは幾らになるんだ?
0062デフォルトの名無しさん
NGNG非決定性有限オートマトンと決定性有限オートマトンのことか
もっと分かりやすく説明しる
0063デフォルトの名無しさん
NGNGおいおい。
0064デフォルトの名無しさん
NGNG英語・日本語どちらでもいいです。よろしくお願いします。
0065デフォルトの名無しさん
NGNGおいおい、マジで正規表現の一つ一つにプログラムを書くつもりか?
ユーザーが自由に正規表現を入力できなきゃ意味無いだろ。
0066デフォルトの名無しさん
NGNGレス先と噛みあっていないようだけど
ユーザが正規表現を与えてからコード(色んなレベルがあるけど)を作り出すのも普通の実装法では?
0067デフォルトの名無しさん
NGNGlexがそうだな。
DFAを作っているはず。
0068デフォルトの名無しさん
NGNGおいおい、よくわかってないなら口を出すなよ。
ユーザーが正規表現を与えてからコード(オートマトン)を作り出すことを
「前提に」話をしてんだよ。
お前の言ってるレベルよりもっと先のレベルで話をしてんの。
そのオートマトンの作成方法について、自動的に作成されるのが普通だが、
正規表現ごとに人間がハードコーディングすると、最高のパフォーマンスを
得ることができる。が、そんなものはたとえパフォーマンスが高くても使い物には
ならん。
もともとの話は、バックトラックもDFAも使わずに、バックトラックを使ったNFAよりも
パフォーマンスがよくてなおかつ前方参照が問題なく使えるアルゴリズムを示せと言った
ところ、「俺が一つ一つ変換してやるからアルゴリズムは示す必要は無い」と言う奴が
出てきたんだよ。
違うか?
違うならアルゴリズムをちゃんと示せよ。
もう一度言っておくが、「アルゴリズム」は常識語だ。
0069デフォルトの名無しさん
NGNGなんか、どんどん話を勝手に創作してるように他人には思えるのだが?
一度自己チェックしてみたほうがいいよ。
0070デフォルトの名無しさん
NGNG>>46
>だいたい、バックトラックを使った方がパフォーマンスが常に良いなんて誰が言ってるんだ?
>自分解釈をなさるのは結構だが、まるで常識のように発言すると笑われるよ。
>>49
>じゃバックトラックが必要な 正規表現とそのNFAを 一つ書いて下さい。
>それをDFAに変換します。
という奴しかいないぞ。
反例一つあげて、納得させたらいいじゃないか?
たとえば、\(a*b\)\1c のNFAを書いて、DFAに直らなかったら それで納得するんじゃないの?
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNGところで
> \(a*b\)\1c
みたいに\1とか使ってる正規表現って
「有限オートマトン⇔正規表現」における正規表現といえるのだろうか?
0073デフォルトの名無しさん
NGNG「NFA⇔DFA」というのは証明されているし、実装法もわかっている。
後方参照 をDFAでどう表現するかは面白い話題じゃないか
ところで、前方参照は何の事なんだろ?
0074デフォルトの名無しさん
NGNG話が通じなくて困る。
0075デフォルトの名無しさん
NGNG前に戻る
後ろに戻る
うーん…
0076デフォルトの名無しさん
NGNGと俺は思っているよ。
前方参照って言うと、Perlで言うところの (?= ) とかが思い浮かぶ。
んんん?あれは前方参照って呼んだっけ?
0077デフォルトの名無しさん
NGNGどっちが前でどっちが後ろなんてのは個人差があるんだよな
例えば"abcde"という文字列があったとして
"a"は先に出た文字だから前だ
"a"は過去に出た文字だから後ろだ
どちらも正解だと思う
0078デフォルトの名無しさん
NGNGまったくの正論。同意
0079デフォルトの名無しさん
NGNG「後日」って言葉はないな。
008079
NGNGでも「前日」とは真逆の言葉だ。
0081デフォルトの名無しさん
NGNGそれは、言葉の意味がちゃんと確定されている状況のひとつに過ぎないわけだ。
他には、人間の向いている方向は、眼前・背後のように、前後が決まっていたり。
↓ 閑話休題でたのむ
0082デフォルトの名無しさん
NGNG簡単な後方参照 \(a.b\)\1 とかは 直感DFAに出来そうに思う。
. の部分にマッチした変数とすればという事だけど
これをDFAの範囲内でないという事なら そもそも 後方参照は正規表現の範囲内かという事になるし
0083デフォルトの名無しさん
NGNG> これをDFAの範囲内でないという事なら そもそも 後方参照は正規表現の範囲内かという事になるし
>>72-73
0084デフォルトの名無しさん
NGNG「簡単な」だけサポートしてもだめ。
0085デフォルトの名無しさん
NGNGどういうのが難しそうというか出来ないと思うわけ?
0086デフォルトの名無しさん
NGNGだから、一つ一つ「これならできる」「これならできない」じゃなく、
全てに対応できるアルゴリズムを示せと何度も言っておる。
ユーザーが正規表現を入力してからプログラミングするのは泥縄と言う。
0087デフォルトの名無しさん
NGNG入力に従って遷移先が一意に決まるのがDFAであり、柔軟に変更されるのはNFAだ。
とりあえず、どうしても例を示さなきゃ何もできないというなら、
せめて>>82の正規表現を汎用的なアルゴリズムでDFAに変換してから大きな口をたたけ。
0088デフォルトの名無しさん
NGNG変数Aによって状態�Bに遷移するとする。
このとき、A=="a"ならば、入力"a"によって遷移する先が�Aと�Bの二つになり、
一意に定まらない。
これはNFAであり、DFAではない。
よって、変数を使ってDFAに変換することはできない。
動的にDFAを構築するという方法を言った奴もいたが、動的にツリーを
構築するよりは、構築されたツリーから動的に遷移する方がはるかに早い。
よって、DFAよりはNFAの方がパフォーマンスが良い場合がある。
従って、もともとの話に戻るなら、オートマトンによって必ずワンアクションで
遷移先が決まると勘違いしているのは、NFAを知らない奴だ。
知らないだけでなく、これだけウダウダと恥をさらし続けてるというのは、
まったくもってあきれ返るね。
0089デフォルトの名無しさん
NGNGもっと仮想コードは判り易く書いてくれよ。
状態�@ 入力="a" then 状態�A else 状態�@
状態�A 入力=@A then 状態�B else 状態�A
状態�B ここは何?終端?
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGまるで総合失調症患者の書き方みたいに判らんというか説明不足だぞ。
0092デフォルトの名無しさん
NGNG変数を使ったDFAなどないことの説明だ。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG無理だがな(藁
0095デフォルトの名無しさん
NGNGよって、変数を使ってDFAに変換することはできない。
オートマトンによって必ずワンアクションで 遷移先が決まると
勘違いしているのは、NFAを知らない奴だ。
まったくもってあきれ返るね。
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGそんなことは全く関係が無い。
DFAというのは遷移先が一意に決まるからこそ「決定性」オートマトンという
名前がつけられているのであって、同じ入力"a"にたいして二つの遷移先が
できることにより、それはDFAでなくなる。
よって、変数を使ってDFAに変換することはできない。
これだけ初心者向けに書いてもまだわかんねーかな?
VB厨房はIFとTHENを使えばわかるのか?(藁
0098デフォルトの名無しさん
NGNG間違っているかもしれないが、
まず、a.b のオートマトンは
状態0 aなら goto 1 else goto 0
状態1 aなら goto 3 else goto 2
状態2 bなら Found1 else goto 0
状態3 bなら Found2 else goto 1
どうして状態1でaを特別にするかというのは、たとえば "aacb" を考えれば分かる
\1 のマッチは aと2文字目とcにマッチすればよいから、この検索に継続して
Found1 aなら goto 4 else goto 0
状態4 状態1で読んだ値と同じなら goto 5 else goto 0
状態5 cなら Found3 else goto 0
"aac"とマッチした場合は状態1に戻らなければいけないので
Found2 aなら goto 6 else goto 1
状態6 aなら goto 7 else goto 1
状態7 cなら found4 else goto 1
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGa.bの部分だから>>98でいいんだよ。
>>98
で、それを人間が変換しなきゃならないのはバカバカしいから、変換する
アルゴリズムを示せと何度も言ってるはずだがね。
今回は「.」が一つだから、ノードを一つ取り替えれば済む。
すなわち、状態4のことだ。
が、もっと複雑な正規表現の場合、ツリーの再構築が必要になる。
ツリーを再構築するよりはバックトラックのほうが効率が良い。
おい、何度同じ事を言わせる気だ?
0101デフォルトの名無しさん
NGNG知らなければ勉強しなおしてください。
くれぐれもプログラムあるいはコードと間違えないように。
0102デフォルトの名無しさん
NGNG誰にいってるの?
010398
NGNG0104デフォルトの名無しさん
NGNG狭義の正規表現 ⇔ 狭義のNFA ⇔ DFA は数学的に証明済みなのだから、
参照を含む正規表現が、狭義の正規表現に変換可能ならば、コードを示す必要もなし。
逆に狭義の正規表現のクラスからはみ出るなら、バックトラックNFAもはみ出るし、DFAでは実現不可能。
ただし、DFAを拡張することで効率がよいものができるかどうかは、問題に入ってない。
ってことで、いかがでしょうか。
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG元が数学的正規表現であるかどうかに関わらず NFAであるならDFAに変換出来る。
ただ、どう実装するかという問題だけだ。
普通にやれば爆発的な規模になるからね。
0107デフォルトの名無しさん
NGNGその論文は前方参照・後方参照について言及されてない。
だから、ここで論じられてる事に関しては証明されてない。
0108デフォルトの名無しさん
NGNGちゃんと>>106を読んでみ
まず
>数学的には NFA ⇔ DFA である事は証明されている。
>元が数学的正規表現であるかどうかに関わらず NFAであるならDFAに変換出来る。
は事実だ
次に
> その論文は前方参照・後方参照について言及されてない。
前方参照・後方参照を含む正規表現は数学的な正規表現ではない
ここで問題になるのは
前方参照・後方参照を含む正規表現がNFAで表せるか,だ
NFAで表せれば,自動的にDFAに変換できる
0109デフォルトの名無しさん
NGNG最初から前方参照・後方参照を使った場合の話をしてんのに、まるで関係ない
論文を持ってきて「証明されてまーす」「この論文は事実でーす」
なんて、頭悪いにも程がある。
0110デフォルトの名無しさん
NGNGそれが出来なくて、しかも自分が変だと思わないなら、自分は総合失調の可能性があると思った方がいいよ。
言いたいことが、「俺はスゲーんだ」なのだとすれば、それはそれで確かにあんたはスゲーよと認めるけどね。
0111デフォルトの名無しさん
NGNGだからちゃんと>>106と>>108を読めよ
頭悪いにも程がある
>>110
リダイレクタ付けてくれ
誰に向かって言ってるのか分からない
0112デフォルトの名無しさん
NGNGお前は三段論法とか演繹を知らないのか、と
0113デフォルトの名無しさん
NGNGがっかり・・・
0114デフォルトの名無しさん
NGNG>>107は NFAでDFAに変換出来ないという物を1品だけ示せばそれですむんだから、なんでそうしないんだ?
それはたぶん普通のNFAではないのだろうけど、どういうふうな拡張がされていて
どこがDFAに変換出来ない(あるいは難しいのか)がそれで明らかになるだろう。
0115デフォルトの名無しさん
NGNG前方参照・後方参照の無い正規表現の話は的外れだからやめてね。
みんなもっと高度な話をしてるんだよ。
0116デフォルトの名無しさん
NGNG自分理解力が不足してるんだって気づきなさい。
ほら、わかんないって騒いでるのはお前だけだろ?
0117判らん人1
NGNG0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGヘンテコリンな粘着を延々と、そろそろ自分がキティだって事にて気づきなさい。
そもそも、自分頭良いと思うのなら>>114に答えるのも簡単でしょ?
たった一つの例をクールに示せばよいのだからね。
それが出来ないなら、それが妄想って事だよ。
0122デフォルトの名無しさん
NGNG果たして一つの例で理解できるかな?
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNGライブラリが腐るほど公開されてるんだから、黙って使ってればいいのに。
0125デフォルトの名無しさん
NGNGここで正規表現のアルゴリズムを云々言ってるやつらが公開してるライブラリなんだから、
黙って議論を見守ってればいいのに。
0126デフォルトの名無しさん
NGNG便利(高機能・高速化)にするために、正規表現に関する知識はまだまだ足りない。
ソフトウエアや数学の学会でも、正規表現に関する論文発表は多い。
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG自分で実装派と利用派が当然いるでしょうね。
ただ、やっぱりPerl互換でとかいう事になると、実装派の負担は大きくて厳しい
0129デフォルトの名無しさん
NGNG利用できそうならするが、速度や機能を考えて自分で実装することもある。
0130教えて君
NGNGパスワードの設定に関して妥当性を正規表現で評価する方法を探しています。
もし皆様のなかで優れた方法をご存知でしたら、教えてください。
VBSで評価しようとしています。(お恥ずかしい話です)
条件は色々あると思いますが、私が想定しているのは
-8文字以上
-14文字以下
-アルファベット(大文字小文字)どこにあってもよく各1文字以上
-数字 どこにあってもよく各1文字以上
で作られていることです。
0131デフォルトの名無しさん
NGNGってこと?
0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNGマトンカレーはおいしいです。
0134デフォルトの名無しさん
NGNGマトンは何の肉か知っていますか?
0135デフォルトの名無しさん
NGNGこんなのらしいよ。
http://www.lamb.anzco.co.jp/jiten/difference.html
0137デフォルトの名無しさん
NGNG正規表現一つで済まそうとするなら、次のものにマッチ「しない」ものが
条件を満たす。
^[^A-Z]+$|^[^a-z]+$|^[^0-9]+$|^.{,7}$|^.{15,}$
0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNGand検索がうまくいきません
and検索はどのように正規表現で表記すればいいのでしょうか?
例えば「a and b」を検索したい場合
(.*a.*)(.*b.*)で検索すると"abcde"はヒットするのですが、"edcba"はヒットしません
(?=.*a)(?=.*b)では何もヒットしません
文字数が多くなってしまうが
やっぱり(a.*b)|(b.*a)と表記しないと駄目なんでしょうか?
(これだと「a and b and c and d」で検索するにはすごい文字数に・・・)
0140デフォルトの名無しさん
NGNG単発でしたいなら、無順序で含んでいるものを検索するには>>139の思うとおりすごい正規表現書くしかないし。
0141139
NGNG多段階方式ですか、試して見たいと思います
しかし.NETのMatch関数なら(?=.*a)(?=.*b)でand検索できて順序に
関係なくヒットするのにJREはなんで出来ないんだろう?
AWKの正規表現しかサポートしてないのかな?
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG^[^a]+$|^[^b]+$
上記にマッチ「しない」ものが条件を満たす。
おい、お前ら応用というものがきかんのか?
0144デフォルトの名無しさん
NGNG例では "a" とか "b" とか言ってるけど、ホントは文字列なんじゃないの?
0145デフォルトの名無しさん
NGNG[ab]+
じゃだめなんか?
aやbが文字列なら
[\(a\)\(b\)]+
とか
0146デフォルトの名無しさん
NGNGそれは「a or b」
0147139
NGNGレスありがとうございます
例としてa and bをあげましたが文字列も検索したいと思っています
.NETのMatch関数の検索よりもJREの検索時間の方が極端に早かったので
何とかJREを使いたいと思っているのですが・・
(大きいサイズのテキストファイルを検索したいので)
0148デフォルトの名無しさん
NGNG0149148
NGNG>>147
or な検索はできるけど
>>139のような and な検索って正規表現ではできないんじゃないかな
なんかトリッキーな正規表現を記述すればできるかもしれないけど、
正規表現の正当な書式で and にあたるようなものは無いと思われ
0150デフォルトの名無しさん
NGNG先読み (?=…) をサポートしている正規表現ライブラリなんて、
それこそ、いくらでもあると思うが。たしか、Perl5のエンジンを
ぱくったやつとかもなかったっけ?
0151デフォルトの名無しさん
NGNG>>140 の提案のように、
grep aaa | grep bbb | grep ccc | grep ddd
とするような
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNGその中では結局 >>151 みたいなことしてるみたいだけどね。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGまずは努力の跡を見せろや。
0162デフォルトの名無しさん
NGNGこのアドレスはいいとか悪いとか評価するのか?
評価の基準は?
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG勢があるから、2ちゃんねるは他の掲示板に比べると、教えて君のアホな書
込みが比較的少ない。
これが2ちゃんねるの長所でもある。
>>160 が応答を返さない所をみると、正規表現を自分で理解しようとせずに
人に書いてもらって正規表現をそのままコピーして使うつもりだったか。
NTT DoCoMoのメールアドレスの仕様はよく知らない。一応、perlでの一案を
書いて見るけど間違っていると思う。
^[0-9a-z.]+@docomo\.ne\.jp$
0165デフォルトの名無しさん
NGNG×人に書いてもらって
○人に書いてもらった
0166デフォルトの名無しさん
NGNG理解してますか?>そこのあなた
0167デフォルトの名無しさん
NGNGNFAもDFAも詳細までは知らんから実装できん
DFAは入力に対し遷移先が一意に決まり
NFAは複数に遷移する先が複数になる
ってこと?
0168デフォルトの名無しさん
NGNG理解してますか?>そこのあなた
0169デフォルトの名無しさん
NGNG複数ある状態の直積がDFA。
DFAは「NFAの状態」と「全て入力値」の集合演算の結果。
0170デフォルトの名無しさん
NGNG実装不可能と理解していいのでしょうか?
0171デフォルトの名無しさん
NGNGたとえば r{3,5} の場合、rrr(()|r)(()|r) などに展開すれば
ほぼ等価になる。
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNGr{1,10000} はどう展開するの?
0174デフォルトの名無しさん
NGNG何で分からないの?頭が悪いの?
0175デフォルトの名無しさん
NGNG純粋なDFAでは部分一致参照( ( ) を \数字 で参照)は実装不可能
0176デフォルトの名無しさん
NGNG[email protected]→docomo.ne.jp みたいな感じ
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG<(_ _*)> アリガトォ できますた(;´Д`A ```
>>177
splitでやってましたが正規表現でいきたかった
0180178
NGNG0181デフォルトの名無しさん
NGNGエスパーの資質アリか?
0182デフォルトの名無しさん
NGNG$result = ereg('<title>(.+)</title>', $str, $regs);
でOK?
0183デフォルトの名無しさん
NGNGでいけました
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGせめてどの実装での質問かくらい書いても罰は当たらないと思うが?
%r#^$%#
0186184
NGNGperl です
空行(スペース含んでいたりいなかったり)を消したいときに
とある本で 空行でない行をprintする とヒントがあったのですが
空行でない行を探すのは 複数のパタンのor になる?
だったら直接 空行をあらわす 正規表現は無いのか?
と思ったのですが、分からなかったので質問しました
↑、分かりにくくてすみません。
0187デフォルトの名無しさん
NGNGprint if /\S/; # 空白文字以外を含んでたらその行を print する
print unless /^\s*$/; # 空行か空白文字のみの行は print しない
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNG1. 空記号列 ε は正規表現である
2. ai(Aの任意の要素)は正規表現である
3. X と Y が正規表現ならば、
3-1. X|Y も正規表現である
3-2. XY も正規表現である
3-3. {X}* も正規表現である
0191デフォルトの名無しさん
NGNGにアクセスされた場合、実際には
http://www.example.com/index.php?cat=hoge
にアクセスしてるように表示させたいと思っています。
(要は、com/以下の、途中のパス名はどうでもよく、URIの最後の/と/の間の文字列を受け取って
実際には、http://www.example.com/index.php?cat=その文字列
を表示させたく思ってます。)
で、Apacheのmod_rewriteモジュールなるものを使って、
RewriteRule ([^/]*)/?$ /index.php?cat=$1
としたら、うまくいきました。
ただ、そしたらこんどは、
http://www.example.com/phpMyAdmin/
みたいなものまでこれを解釈してしまうようになってしまいました・・
(そりゃそうだ)
で、たとえば「phpMyAdmin」「Analog」「xoops」の、
ディレクトリ配下の場合にアクセスされたときにだけ、
この「mod_rewrite」を無効にするには、どうすればいいのでしょうか?
正規表現で可能でしょうか?
0192デフォルトの名無しさん
NGNGちっとは考えたのか?
0193191
NGNG考えて、あと、正規表現メモをはじめとする各種サイトを見たり、「グループ化」でググったりしたのですが、
どうもうまくいきません。
とりあえず、
RewriteRule (phpMyAdmin)|(xoops)|([^/]*)/?$ /index.php?cat=$3
とやることで、
phpMyAdminとxoopsにひっかからない場合のみ、正常に動作するようには出来たのですが、
逆に引っかかるときに、記述の仕方(正規表現で分岐する書き方?)が分かりませんでした・・・。
最終的には、
-------------------------------------------------------------
「URIがhttp://www.example.com/phpMyAdmin配下」
または
「URIがhttp://www.example.com/xoops配下」
なら、mod_rewriteを行わず、
それ以外は、/index.php?cat=★
(★は、URLの最後の2つ/と/の間の文字列。ただし、1番最後の/はなくてもいい)
-------------------------------------------------------------
としたいのですが・・・
教えて頂ければ幸いです・・・
0194デフォルトの名無しさん
NGNG?!
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG正規表現でどうやって書くんですか?
具体的に言うとアドレスの集合の中から
www.2ch.net
を含まないアドレスの検索をしたいということです
0197デフォルトの名無しさん
NGNGgrep -v じゃダメなの?
0198デフォルトの名無しさん
NGNG“含まない”という正規表現はない。
grep の -v オプションでやりたいことはできる。
0199デフォルトの名無しさん
NGNG正規表現だとやはり無いのでしょうか・・・
残念
0200デフォルトの名無しさん
NGNG相当長くて複雑になるだろうけど。
0201デフォルトの名無しさん
NGNGほんと?
a,b,c,d,e というアルファベットに対して
"abc"を含まない文字列という「正規表現」が書けるのか?
それとも、これでも複雑すぎる?
0202デフォルトの名無しさん
NGNG>a,b,c,d,e というアルファベットで "abc" を含まない
やってみたら複雑すぎて大変だったので
a,b,c というアルファベットで "ab" を含まない正規表現で我慢して。((b|c)*a+c)*
アルファベットの集合を Σ とするとき
(拡張正規表現のない素の) 正規表現で表される文字列の集合 L に対して
Σ* - L も正規表現で表されることの証明はオートマトン関係の本でも参照。
0203デフォルトの名無しさん
NGNG0205質問
NGNG<center><img src="./aaaa/cc/残したい2.png"></center>
を置換を使って、
<center><img src="./eee//残したい1.png"></center>
<center><img src="./eee/残したい2.png"></center>
としたいのですが、可能でしょうか?
0206質問
NGNG<center><img src="./eee//残したい1.png"></center>
でなくて
<center><img src="./eee/残したい1.png"></center>
でした
0207デフォルトの名無しさん
NGNG%s:"\./[^/]*/[^/]*/:"./eee/:g
0209デフォルトの名無しさん
NGNG利用する言語をちゃんと書かないからそういう答えしか返ってこない。
0210質問
NGNGはぁ、そうですか・・・すいません。
用途としては、サクラエディタ(メモ帳)使って、HTMLのpngを自分の指定したフォルダーに置き換えるのに使おうと思ってます。
言語については、よくわかりませんが、正規表現のところに
Bregexp.dll V1.1 Build 22 Apr 29 2000 21:13:19
と、書いてありました。
調べたところ(2ch内検索)ですが、意味が解からないです。
/*
非互換について
次の機能は、BREGEXP.DLLではサポートしていません。
●VBなどでパターンに変数名を書いても展開されません
●メタ文字
\G 前回の m//g が終わったところにのみマッチ
●修飾子(パターンの右側につけるパラメータ)
o 一度だけコンパイル
x 拡張正規表現を使用する
e 式の右側の評価を行なう
*/
これで、なんとかお願いします。
0211デフォルトの名無しさん
NGNGがあれば紹介してください。
出来れば、高性能な奴
0212デフォルトの名無しさん
NGNG正規表現で日付チェックを行おうとしていますが、
yyyy/MM/ddとyyyyMMddを許可しようとした場合、
どのようにすればよいのでしょうか?
0213memo
NGNGttp://aglaia.c.u-tokyo.ac.jp/~yamamoto/regex_function/20011031.html
0214デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1072883528/
海外でよく使われていうる掲示板専用の
オフラインリーダー作って下さい。
必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用
0215デフォルトの名無しさん
NGNGyyyy/?MM/?dd
なお、それが「日付」であるかは別の方法でチェックしましょう。
0216デフォルトの名無しさん
NGNG本当にyyyyとか書くなんて
0217デフォルトの名無しさん
NGNGって宿題があるのですが分かる方お願いします。オートマトンとかそういうのを使っていたと思うのですが・・・
0218デフォルトの名無しさん
NGNG本当に宿題とか聞くなんて
0219デフォルトの名無しさん
NGNG2003/1010
とかも とおっちゃうぜ
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNGprint "私は馬鹿でした" unless $date =~ m|yyyy/?MM/?dd|;
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG「〜含まれてる」でもいいんだけど。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG半角カナを考慮しないのなら[\x00-\x7f]でいいんじゃないの?
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNGif(/[\x00-\x7f]/){print"2バイト文字が含まれていない"}
0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNGISO-2022-JP
0232デフォルトの名無しさん
NGNG文字列の中に1バイト文字 ([\x00-\x7f]) が含まれている
故に2バイト文字が含まれていない?
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG相手するだけ無駄
0235デフォルトの名無しさん
NGNG文字コードも知らない厨房。
大人の対応は、sjisと思ってあげることだろうか。
0236デフォルトの名無しさん
NGNG半角カナを考慮したとしても[\x00-\x7f]でいいよ。
何で半角カナを特別視するんだ?
1バイトかなならわからんでもないが。
0237デフォルトの名無しさん
NGNGShift_JIS の場合だと半角カナは1バイト文字でかつ [\x00-\x7f] の外にあるから、じゃない?
0238デフォルトの名無しさん
NGNG文字列の中に2バイト文字が含まれているかの判定だろ?
$_="おめでとう!";
if(/[\x00-\x7f]/){
print"2バイト文字が含まれていない\n";
}else{
print"2バイト文字が含まれている\n";
}
これが正解
0239デフォルトの名無しさん
NGNGメール欄読めって話でしょ。
ていうか、ここまでひっぱってもまだ文字コードが何かを言わない >>225 は
もう消えたのか?
それとも釣りだったのか?
0240デフォルトの名無しさん
NGNG> 半角カナは1バイト文字で
違うっての。
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGそれってDFAの場合文字列 ab に対して a でマッチしちゃいません?
POSIX NFAならabにマッチするんだろうけど。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG(aiueo)
(aiu(e)o)
((a)iu(e)o)
(aiu(e(o)))
なんかを選べる正規表現てどうゆうふうに書いたら良いのでしょうか。
全部別々に書くと一番最初のを選びたくて(.*?)と書くと
他の(aiu(e)なども途中までで引っかかってしまいまって困っております。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGbregexp.dllとかだと渡したバッファ内で完結しているようで
複数に分割したバッファで検索の継続ができないので不便です。
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG終端が前もってわかるならboostのregexが使える
0251デフォルトの名無しさん
NGNGなんのためのストリームだよ。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNGHaskellならあるよ。
0255デフォルトの名無しさん
NGNG「泊数」にはヒットしたいけど、「宿泊数」にはヒットして欲しくない
場合、正規表現をどうやって書けばいいですか?
0256デフォルトの名無しさん
NGNG「(?<!宿)泊数」
0258デフォルトの名無しさん
NGNGttp://www.emeditor.com/jp/help/howto/search/search_regexp_syntax.htm
単純に、サポートしてないからのようです。
(肯定|否定)先読みはあるのに、戻り読みがない。
0259デフォルトの名無しさん
NGNG「(?!宿)泊数」で。
0260デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG"宿泊数" ;
"泊数" {hoge();}
%%
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGそれだと「〜だった。泊数は〜」なんて文が来たら「。泊数」に
マッチするから、場合にもよるけどお勧めしない。
0265デフォルトの名無しさん
NGNG???
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNGこれで先頭にもマッチするけど、どうよ?
でも>>264のパターンではやっぱりダメか・・・
先読みできないとちょっと無理かな?
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNG「[^宿]泊数」にマッチした部分を例えば「台数」に置換するとき、
「〜だった。泊数は〜」が「〜だった台数は〜」になるので、
こういう場合困るから、と言ったのでした。
0273デフォルトの名無しさん
NGNG正規表現への置換の仕方がわかりません。例えば、
[0-9][0-9][0-9]→[0-9][0-9][0-9]
に置換したいときどうすればいいんですか?
0274デフォルトの名無しさん
NGNG置換なんて標準じゃ定義されて無いぞ
ライブラリのマニュアルでも読んどけ
0275デフォルトの名無しさん
NGNGs/0/0/
s/9/9/
条件分岐したいのなら正規表現だけではできない。
0276デフォルトの名無しさん
NGNGperlなら
$j="0|1|2|3|4|5|6|7|8|9":
%a=("0",0,"1",1,"2",2,"3",3,"4",4,"5",5,"6",6,"7",7,"8",8,"9",9);
s/($j)($j)($j)/$a{$1}$a{$2}$a{$3}/g;
かなぁ?
0277デフォルトの名無しさん
NGNG>>275
>>276
そうだったんですか・・・
プログラム舐めてました。すいませんでした。_| ̄|○
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGネタ?
0282デフォルトの名無しさん
NGNG厳密なことをいうとそういうことになりまっす
0283278
NGNG0284デフォルトの名無しさん
NGNGさー。ちょっと求めているものと違うかもしれないけど
cflow とか使えば?
windows 系ならフリーで適当にいろいろ落ちているし、
cflow のコマンドラインがイヤなら doxygen なんかもおもろいと思うけどね。
0285デフォルトの名無しさん
NGNGというか、最初の>>278の要望とまったく異なるレスをしてすまんかった。
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGものすごい量ヒットしましたね
普通に if(
とかが出てきました
0288デフォルトの名無しさん
NGNG予約語は後で取り除かないと駄目だろ
0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNG型 関数名(型 仮引数,…)
0291デフォルトの名無しさん
NGNGtypedef とか struct 〜 とかどうするんだよ?
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG「○と○と○を含む言葉」の検索はどうやるんでしょう?
或いは「○と○と○を含まない」、でもいいです
0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNG(.*(AAA.*(BBB.*CCC|CCC.*BBB))|(BBB.*(CCC.*AAA|AAA.*CCC))|(CCC.*(AAA.*BBB|BBB.*AAA)).*)
0297294
NGNGつうか微妙に質問まちがえた_| ̄|○
○と○と○と○によって構成されている単語の検索方法ってわかりますか?
○は1文字です、
0298294
NGNG0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNGもういいよ
0301デフォルトの名無しさん
NGNG「.」を打ったら全ての文字の代わりとされてしまうではないか
0303デフォルトの名無しさん
NGNG\. か [.] でだいたいいける。
0304デフォルトの名無しさん
NGNG正規表現エンジンによるけど [asdf]{5} とかあるよ。
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGそういうのは任意の深さのネストしたブロックを
マッチする正規表現を書いてみてから言え。
{{{{{{}}}}}}
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG文脈依存文法も知らんのか…
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNGタグ付き(というかグループ化?)はほとんどのやつが対応してるでしょ。
つーか正規表現に規格みたいなもんあったっけ。
POSIXのがそれっぽいけど。
メタキャラクタのエスケープ辺りの仕様違いはありえる。
0315デフォルトの名無しさん
NGNG.*(?=AAA|BBB|CCC).*
0316デフォルトの名無しさん
NGNGごめん、間違えた。
0317U..X1l1Ubq ◆pdU1l1X..U
NGNG0318デフォルトの名無しさん
NGNG/(<BODY)(.[^>]*?)(>)/
でひろえないかな?
ってか拾えんタスケテエ
0319デフォルトの名無しさん
NGNG正規表現一発という訳にはゆきません。
正規表現で捕まえてシーケンスを作るしかないでしょう。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG「正規表現で捕まえてシーケンスを作る」
よくわからんが調べて報告シマ
0322デフォルトの名無しさん
NGNG真面目にスキャナ&パーサ実装してもいいけど、
大抵は /(<BODY[^>]*?>)/i で事足りなくない?
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGだから「大抵は」って言ってるんだけど。
じゃあ真面目にスキャナ&パーサ実装すりゃいい。
0325デフォルトの名無しさん
NGNGコメントと、文字列の中でなく、マッチするという条件だから
1)コメントに入るか、文字列に入るか、<BODY を見つけるかの ORでマッチさせて
そのマッチした条件を調べて 3つに分岐
2)コメントに入る -> コメントから出る だけみる ->また1)に
3)文字列に入る-> 文字列から出る だけみる ->また1)に
4)それ以外 ->BODYを見つけた
って処理の流れを作らなくてはいけない
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNG秀○… プッ
0328デフォルトの名無しさん
NGNG下で一つも引っかかりません。
>findstr /n /c:"∫" \utl\eij\eijiro52.txt
Windows 向けの JVim に付属する grep でも同じように検索できません。
0x87や 0x92 は正規表現のメタ文字のコードではないはずです。なぜ検索できないのか理解できません。
どなたか理由を説明できますでしょうか。
0329デフォルトの名無しさん
NGNG"∫" が 0x8792 じゃないからだろ。
0330デフォルトの名無しさん
NGNG再確認してみましたが、DOS コマンドライン、shift JIS データファイルとも
"∫" は 0x8792 の shift JIS コードでした
0331デフォルトの名無しさん
NGNGてめーいい加減に白よ。0x81 0xE7 だろうがよ
0332デフォルトの名無しさん
NGNGhttp://www.watalab.cs.uec.ac.jp/students/monkeee/sjis.html
0333包茎 ◆8fOTfwdIi.
NGNGWin2k の findstr も、BCC 付属の grep も検索できた。
>findstr /n /c:"∫" aaa.txt
2:∫
>grep "∫" *.txt
File aaa.txt:
∫
0334デフォルトの名無しさん
NGNGおかげで、現象論的にですが、検索できない理由が解りました。Windows が shift JIS コードを変更してくれていました。
----------------------------------------
現象
shift JIS コード 0x8790 -- 0x879c の文字のうち "≒≡∫ √⊥∠ ∵∩∪" の文字について、findstr で検出できない
理由(推測) shift JIS コードを Windows が勝手に 0x81e0 -- 0x81ec に変更している
根拠
0x8790 -- 0x879c の文字を含むファイルを IE で表示させると 0x81e0 -- 0x81ec に変わっている
メモ帳でも同じコード変化が発生している
0x8790 から始まる "≒≡∫ √⊥∠ ∵∩∪" の文字について findstr は検出できない
自作の正規表現ライブラリならば0x8790 -- 0x879cでも検出できる
多分 Unicode, Wide Character, EUC, Multi byte の間の変換をやっているうちに、 0x8790 -- 0x879c のうちの一部のコードが 0x81e0 -- 0x81ec に変わってしまうのだと思います。今回はいい勉強になりました。ありがとうござました。
0335デフォルトの名無しさん
NGNG>>305です。
正規表現で表現できない文字列グループを示してから言えや!!
0336デフォルトの名無しさん
NGNG日本語の正しい文にだけマッチする正規表現作ってから帰ってこい!!
0337デフォルトの名無しさん
NGNG日本語の正しい文をすべて列挙せよ!
それらを|でつなげ!
以上!!
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNGですが、てゆうか秀丸エディターの文字置換で空行(^$)を削除したいと思いまして
置換する文字を何にも指定しなければ成功するかと思ったんですがうまくいきません
なぜなんだろう?
検索→^$
置換→
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG漏れの秀丸、それやったら無限ループになった。
0343デフォルトの名無しさん
NGNG置換→
0344デフォルトの名無しさん
NGNG行自体を削除するのは単なる置換じゃないからねぇ。
sedだと /^$/d か?
delete-matching-lines みたいなのない?
0345デフォルトの名無しさん
NGNGあら?そんなんでOKなのか!
0347デフォルトの名無しさん
NGNG>>338です、お礼に
調子こいて、行頭のスペースを消去するのを考えてみますた
今度は簡単にデキマスタ
検索→^スペース(文字を打ち込んだらイヤズラ、^(サーカムフレックス)の次に
本当にスペースをポチット押すだけです)
置換→
これでばっちりデキマスタマンセー
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG出来ない → 自分の頭が悪い ○
こういう仕組みだ!
覚えとけ!!
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNGあるパターンの素数回の繰り返しとか考えてみる。
0352デフォルトの名無しさん
NGNG強奪/装備魔法
魔導サイエンティスト/闇/魔法使い/300:300/1/効果
波動キャノン/永続魔法
を、
強奪
魔導サイエンティスト
波動キャノン
にしたいんだが、
検索: /*\n
置換: \n
にしてどうにもならない。*がDOSとかワイルドカードの*とは違うのは解るが
こういう場合どうするんですか?ご教授願う。
0353デフォルトの名無しさん
NGNG置換:
0354352
NGNGという表現方法があったか。ナルホド。ありがたうござました!
0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNG\ -> \\
' -> \'
ってすればいいんじゃ
0358はるかさん ◆DKh/HARUKA
NGNGs/\\/\\\\/g;
s/\'/\\\'/g;
日本語使えなくて良いからとにかく速くて後方参照も使える正規表現ライブラリってどっか無いっすか?
0359デフォルトの名無しさん
NGNGあるパターンの素数回の繰り返しに該当する文字列をすべて列挙せよ!
それらを全て|で繋げよ!
以上!
どうだ簡単だろ?
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG同時にってことだと Perl だと s/(['\\])/\\\1/g かな。
>>358
鬼車とかどうすか?
0362デフォルトの名無しさん
NGNGどうも普通の表現で正規表現でできないことはない
ってことでいいでつか?
0363デフォルトの名無しさん
NGNGただPerlの正規表現はかなりのことができると思うけど
0364デフォルトの名無しさん
NGNGマジレスかよ。
0365デフォルトの名無しさん
NGNGs/([\\\'])/\\$1/g;
0366デフォルトの名無しさん
NGNG一発で変換する正規表現はありますか、それともreplaceを5回使わないといけないですか?
0367デフォルトの名無しさん
NGNGPerlなら、変換表 $table をハッシュで作っておいて、
%taget('ぁ'=>'あ',以下略);
$a =~ s/(ぁ|ぃ|ぅ|ぇ|ぉ)/@{[ $table{$1} ]}/;
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNG変態だな。
0371デフォルトの名無しさん
NGNG<A HREF="hoge2.htm"><FONT COLOR='#FFFFFF'>りんく2</FONT></A> .......
こんな感じのhtmlから「リンク1」を指定したら
hoge1.htmが返ってくるというようなことをしたいのですが、
my $s = 'リンク1';
my $link =~ /<a +href='(.+?)'>(.*)$s(.*)<\/a>/i;
何か良い方法を教えてください。
0372デフォルトの名無しさん
NGNGフォーマットが大体それで揃ってると仮定してあまり凝ったことしないとすると、
my $link =~ /<a +href=(["'])(.+?)\1>(.*)$s(.*)<\/a>/i;
で $2 を取り出す、みたいな感じでどう?
0373デフォルトの名無しさん
NGNGだとは思うねえ。
HTML::TokeParserとかさ。
0374371
NGNGレスありがとうございます。
フォーマットが全然そろっていない & 自分のスキル不足のため
正規表現ではなく、素直に HTML::TokeParser か HTML::Parser あたりで考えます。
0375デフォルトの名無しさん
NGNG"あいうaiu" をそれぞれ、分解して「あいう|aiu」としたいのだが
0376デフォルトの名無しさん
NGNGもうちょっとちゃんと説明しないとレス付かないんじゃないか?
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNG"\".*\""じゃ駄目なんでしょうか?
0381デフォルトの名無しさん
NGNG勘違いでした吊ってきます。
0382デフォルトの名無しさん
NGNG複数""があると全部括ってしまいます。
個別にマッチさせる方法ってないでしょうか。
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNGまず使用言語や、"" 中に \" が現れるか否か等、
条件をはっきりさせて欲しいのだが。
http://www.kt.rim.or.jp/~kbk/regex/regex.html
"[^"]*"
SEE ALSO
http://www.din.or.jp/~ohzaki/perl.htm#CSV2Values
0385デフォルトの名無しさん
NGNG""内には\"も入った方がいいんですが、面倒なんでしょうか?
"test" aida "testooooo" aida2 "ぽっぽぽー" "尻切れ
ってあったら "test" "testooooo" "ぽっぽぽー" をヒットして欲しいんです。
よろしくお願いします。
0386デフォルトの名無しさん
NGNG詳説正規表現にいろいろ書いてあったと思う
0387デフォルトの名無しさん
NGNG\"(\\"|[^"])*\"
先頭は"で途中に"を含まないか\"がある、最後に"が来る。
一応NextMatchと組み合わせると出来ました。
ヒントありがとうございました。
0388デフォルトの名無しさん
NGNG「abc」の後に「def」と続く、「abc」部分にマッチさせるには、
/abc(?=def)/ ですが、
手前に「abc」がある「def」の、「def」部分だけにマッチさせるには
どう書けばいいんでしょうか?
/(?=abc)def/ では駄目みたいなんですけど。
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNG動きました。ありがとうございました。
0391デフォルトの名無しさん
NGNG結果が /def/ と同じでした。
使ってる正規表現ライブラリが、対応してないのかも… 諦めます。
0392デフォルトの名無しさん
NGNGhttp://www.kt.rim.or.jp/~kbk/regex/regex.html#PCRE
http://www.kt.rim.or.jp/~kbk/regex/regex.html#POSITIVELOOKBEHIND
0393デフォルトの名無しさん
NGNG/(?<=abc)def/ なんですね。勉強になりました。
でもライブラリが未対応だった _| ̄|○ガックシ
0394デフォルトの名無しさん
NGNG> 使ってる正規表現ライブラリが、
何使ってるかは先に書け。
0395デフォルトの名無しさん
NGNGこれの日本語に対応したのない?
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNG日本語への対応はいかほど?
0399デフォルトの名無しさん
NGNGUCSで使う分にはなんの問題も無い。
0400デフォルトの名無しさん
NGNGそもそも「UCSで使う」というのがいちばん問題なような
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG思ったが、んなことは無いな。C++から使うんならラッパークラスは
欲しい感じだけど
ただ、文書側のエンコードを決め打ちできない場合
またはソースコードのエンコードと差がある可能性がある場合は
どのみち文字コード変換必要になるんで、結局ユニコードで
やったほうがラクという話も
そのうえでユニコードカテゴリやユニコードプロパティが
サポートされてると、便利なのよね。\p{CJKUnifiedIdeograph}とかさ。
欧米人のことしか考えてないPosixの文字クラスなんぞ誰が使うかっつーの。
UTF-8はリテラルが簡単に指定できない点がイマイチ
まーwchar_tはwchar_tでサイズもエンコードも環境依存で
使えないコンパイラもあるというウンコではあるがな。
0403デフォルトの名無しさん
NGNGなんか無駄な気がしちゃうんだよな。
0404デフォルトの名無しさん
NGNGアフォなことを書いたな。
8bitスルーな「だけ」でエンコーディングの解釈をしないコンパイラなら
ソース自体をUTF-8にしときゃいいし、逆にそれが一番安全なんだよな。
でもMSのCLコンパイラみたいに下手にローカライズされててしかも入力
エンコーディング指定できないコンパイラではその手が使えないのよね。
ったく今どきソースのエンコーディング指定できないっていう
原始人的仕様は勘弁して欲しいね。C#のcscコンパイラでは対応してるくせに。
0405デフォルトの名無しさん
NGNG他の文字コードが使われる事を想定してないだけじゃないのかな。
UNIXみたいにEUCもSJISもJISも、使う人間によるみたいな環境じゃないんだから。
0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNGいやそういう話じゃなくてさ。
日本ローカライズされたclコンパイラでISO-8859-1なソースをコンパイル
する手段が無いのはいくらなんでもウンコでしょってこった。
JISX0208とかの文字集合の奴なら、EUC-JPでエンコードされてようが
ISO-2022-JPでエンコードされてようがとりあえず変換すりゃいいからいいんだよ。
でも文字セットが違う場合、とたんに整数配列に変換して埋め込むという
超原始的手段しか無くなる。
せめてUTF-8ぐらいはサポートしてくれれば、それだけで幸せに
なれるはずなんだが。
ちなみにWindowsは日本だけで出荷されてる製品じゃないから
932以外のコードページもあるんですが、ご存じ?
EUC-JPのコードページも実は定義だけはされてるんだよね。
0408デフォルトの名無しさん
NGNGWindowsのコードページは「変換テーブル」による変換対応だから
どっちにしろ日本語WinならSJISとUnicodeしか通らない罠
0409デフォルトの名無しさん
NGNGそれって
MultibyteToWideCharに指定できるコードページが
932とUTF7とUTF8だけってこと?
ほんとに?
0410デフォルトの名無しさん
NGNG>>408は何を根拠にそんなこと言ってるのさ。
0411デフォルトの名無しさん
NGNGUCS2やSJISに変換しないと、GDIやUIなどの基本APIへ正常に入力できないってこと。
0412デフォルトの名無しさん
NGNGちなみに、EUC-JP のコードページって何番なの?
教えて。
0413デフォルトの名無しさん
NGNGMSDNによれば51932。
MSSDKの
BaseServices/Unicode and Character Sets/Unicode and Character Set Reference/
Unicode and Character Set Constants/Code Page Identifiers
に記述されている。
ただし、多分何の役にも立たないだろう。
俺の環境でEnumSystemCodePages()を実行すると、
installedでないばかりかsupportedですらない。
要するに、51932というコードページはつかえない。
0414デフォルトの名無しさん
NGNGいわゆるJavaのauto-detect相当のheuristicな判断もしてるんだから、
APIにしてくれてもよさそうなもんだけどね。
COMでもイイからどっかに使える口は無いのかしら。
0415デフォルトの名無しさん
NGNGありがとう。参考になった。
IsValidCodePage( 51932 ) は 0 を返すので、確かに使えないっぽい。
ちなみに、ISO-2022-JP が、50220 にマップされているけど、
こっちは IsValidCodePage が 1 を返すので、使えるみたい。
でも、JISAutoDetect(50932) は 0 を返す…
ちなみに OS は WindowsXP
0416デフォルトの名無しさん
NGNGとても仕事で使えそうもないです。
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG$match = $test =~ m/\[/;
print "$'<$&>$`\n";
Perlの正規表現で
これだと'ー'にマッチしてしまうんですけど
'['だけにマッチさせるにはどうすればいいのでしょうか?
0420デフォルトの名無しさん
NGNGhttp://homepage1.nifty.com/nomenclator/perl/shiftjis.htm
Perl や PHP での話は WebProg 板に行った方がいいよ。
http://pc5.2ch.net/test/read.cgi/php/1069245758/
0421デフォルトの名無しさん
NGNGありー!
EUC_JPに変換してからマッチで解決しました。
0422デフォルトの名無しさん
NGNGできるだけパターン文字列は短いやつにしたいんですが・・・
環境は.netです。
正規表現のすんごいひとよろしくお願いします。
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG.netなら(ユニコードカテゴリ\p{IsCJKUnifiedIdeograph}とか)も使えるし
\uでUTF-16コードポイント指定もできるんで
どうとでもしる。
後はユニコードのコード表でも見て。
0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNG+-*/()までに対応した。。。
どうしても()の制御ができません。。。orz
0429デフォルトの名無しさん
NGNG正規表現では(一般に使われてる拡張正規表現でも)表現できません。
これくらい初歩の初歩なんで知っとけ。
0430428
NGNG>>429 どもでした。勉強不足ですみません。。。
0431デフォルトの名無しさん
NGNG文脈自由文法、
あるいは、プッシュダウンオートマトンが受理する文法、のことか?
0432デフォルトの名無しさん
NGNGXML等の木構造に対応する正規表現が研究されている
XML処理に正規表現が使える処理系もあるみたい
http://xduce.sourceforge.net/
0433デフォルトの名無しさん
NGNG(一文字の数字)というパターンはマッチさせたくない。
このような正規表現はどうすればよいですか?
環境は.netです。
0434デフォルトの名無しさん
NGNG一文字の数字はマッチせず
連続2文字以上の数字はOKですか?
それによって変るよ
0435デフォルトの名無しさん
NGNGすいません書き方が悪いんですが、
カッコの始まり"("にマッチさせたいんですが、
次の文字が数字でその次がカッコの終わり
例:(0)
のならびのカッコの始まりにはマッチさせたくないんです。
カッコの中が2文字以上であればマッチしてOKです。
0436デフォルトの名無しさん
NGNGJavaならこんな感じになるのかな?
叩き台にどうぞ
指定のパターンで始まれば
後ろはどうでもいい場合です
^[(]+[\\d]{2,}+[)].*
0437デフォルトの名無しさん
NGNGサンクス!
[(][^\d]でいいことに気づきまつた
0438デフォルトの名無しさん
NGNG[(]
が意図不明。
あとPerl互換(PCRE)ならもっと明示的に記述できるよ。
\((?!\d)
0439デフォルトの名無しさん
NGNG.net で PCRE って使えるの?
0440デフォルトの名無しさん
NGNGメリットは限りなくゼロだろう
ちなみに?!(Zero width negative lookahead assetion)は.netのregexでもサポートしてるみたいだね
ttp://msdn.microsoft.com/library/en-us/cpgenref/html/cpconGroupingConstructs.asp
参照
0441デフォルトの名無しさん
NGNGC++ 用のフリーな正規表現ライブラリってありますか?
いいライブラリがあれば、教えてください。
0442デフォルトの名無しさん
NGNG> 前後読みに対応していて、マルチバイト文字とワイド文字のどちらでもOKな、
使ったことないからこの条件を満たしているかわからんけどw
0443デフォルトの名無しさん
NGNGWSHのRegExp(COM)があるけど駄目か・・・
0444デフォルトの名無しさん
NGNGVC++7.1専用でよければ、つくったのがあるけど…
0445441
NGNGつーか、無いんですね。
とりあえず、後方参照と先読みでなんとかなりそうなので、それでやってみます。
0446デフォルトの名無しさん
NGNG海外向けのwebページを作っているんです。
html ファイル中で、ASCII以外の文字を見つけたいんですけど、
どんな正規表現が可能ですか?
ちなみにEmacsを使います。
0447デフォルトの名無しさん
NGNGASCIIが印字可能文字のことだと仮定すると、開いた瞬間にモードラインの表示で分かるんじゃないのか?
保存するときに確実にしておきたいのであれば、
set-buffer-file-coding-system nil
とかやっとけば?変なの入ってたら保存時に聞かれる。
Local VariablesでISO-8859-1を指定しておいてもいいし。
0448デフォルトの名無しさん
NGNGメールのヘッダーの一部なんですが、
この中から、日付だけを「2004/6/30/19:58:02」という形式で抜き出すにはどうしたらいいんでしょうか?
正規表現ならできると思うんですが・・・
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG置換デリゲートが利用できる
ECMA-Script または .NET の正規表現ならば可能かもね。
[\s\S]+?;\s+([0-2]?[0-9]|30|31)\s+(\w{3})\s+(\d{2,4})\s+(\d{2}:\d{2}:\d{2})[\s\S]*
みたいなパターンで検索して、\2 を自分で加工してから、
\3/\2/\1/\4
って並べればいいのでは?
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNGそれ以降は、たとえば ECMA-Script ならば Date オブジェクトに突っ込んでおけばいい。
でも、>>448 は、正規表現だけでやりたかったようだったから、>>451 を提案してみた。
0454デフォルトの名無しさん
NGNGそうやって文字コードが指定できるんですね。
ためしに、ここのページをMeadow2で
re-search-forward RET
[^\x00-\x7f] RET
ってやると、このページだと、
"["とか" "とか" <"とかにヒットしてしまう。
何かおかしいのかな?
0x00-0x7f ?
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG板違いだけど教えて。
ESC-C^S-ENTER ?
0457デフォルトの名無しさん
NGNG\x7f は C-q Backspace
かな。
0458デフォルトの名無しさん
NGNG検索ができました。 どうもありがとう!!
[^^@-^?] って表示になるんですね。
0459デフォルトの名無しさん
NGNGすれ違いの上に亀レスだが、PlatformSDK の mlang.h の中に
IMultiLanguage(2|3)? つーインターフェイスがあって、それを使えば
IEの文字コード変換機能が利用できる。
0460デフォルトの名無しさん
NGNGOneパスでやろうとすると非常に困難になってしまうのですが、
仕方がないのでしょうか?
0461名無しさん@そうだ選挙に行こう
NGNGあまり有りえないケースを想定して複雑なことになってるなら、
2回に分けたほうが人間にも計算機にもやさしいかもね。
0462名無しさん@そうだ選挙に行こう
NGNGていう正規表現の文字列を動的に100〜1000個分くらい生成してマッチングするのって
著しく(O(n)を超えた速さで)重くなるって事はないよね?
0463名無しさん@そうだ選挙に行こう
NGNG処理速度を押さえたいなら、一単語マッチをorでつないで1000個書く。
0464460
NGNGマッチ結果減っていくんだから
2回に分けたほうが正解っぽいですね。
1回でやるほうはベンチ取ったらありえないぐらい遅かった...orz
0465デフォルトの名無しさん
NGNG#給料日前なので、オライリ本買えってのは無しで。
以前、某スレで見かけたスクリプトの意味がまったくわからんのでつよ・・・
↓相対URLを絶対URLに変換するらしいんですが、もうなにがなにやら。
<?php
$a='http://aaa.co.jp/bbb/ccc/ddd/eee/fff';
$b='././../.././././a/../a.a/../a/b/../../../b/.';
print "$a\n$b\n";
print zettaiURL($a,$b);
function zettaiURL($URL,$soutaiURL){
$p=array('@/\.(?=/|$)@', '@^(.+//.+)/(?!\.\./)[^/]+/\.\.(/.*|)$@e');
$r=array('','preg_replace($p,$r,str_replace(\'\\\\"\',\'"\',\'\\1\\2\'))');
return preg_replace($p,$r,substr($URL,0,strrpos($URL,'/')+1).$soutaiURL);
}
?>
0466デフォルトの名無しさん
NGNGソースも付いてて。
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNGトークンに分ける→ツリー作成→εNFA→NFA→DFA→判定
とりあえずいちいちこんな風に順番にやってたらコンパクトにならないですよね。
a+
a*
.
[a-z]
[^a-z]
(ab)
a|b
この辺の基本的なのだけ(awk相当)実装すれば十分なんですが。
0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNGHenry Spencer の正規表現ライブラリとかどうかな。
正式な配布元はどこかわかんないけど、 FreeBSD の libc なんかに使われてる。
0472デフォルトの名無しさん
NGNG簡単な正規表現の実装の説明があるね。
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG停止や先読み後の飛ばし読み
はできないのでしょうか?
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNGという文字列から (test) という部分を取り出すにはBoostのRegexでどういう記述になりますか?
boost::regex expression("\([a-z]*\)");
としても 「warning C4129: '(' : エスケープ シーケンスとして正しく認識されませんでした。」という
警告が出て、実際に認識されてないようでした。'(' が '<' なら正しく認識出来るんですけど・・・
0479デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGどうか教えてくらはい。
おながいします。
0484デフォルトの名無しさん
NGNGもしかして\でエスケープできるの知らんの?
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNGこれは置換じゃ無理なの?
<div id=test>複数行の、改行スペース半角英数字記号</div>
を<div id=test><div>に置き換えたいんだけど、
<div id=test>\"[^"]*\">\f[A-Za-zA-Za-z0-9]+\f</div>
を<div id=test><div>では出来ませんでした。
0487デフォルトの名無しさん
NGNG複数行にわたるテキストへの対応は実装によってまちまち。
例えばPerlだとsオプションをつけて、
s!<div id=test>.*?</div>!<div id=test><div>!si
でいけるけど、秀丸での表現はわかんない
結構高価なシェアウェアなんだしヘルプに書いてないの?
0488デフォルトの名無しさん
NGNG最近 WebProg の方の正規表現スレでも出てたが、ヘルプの
「検索系コマンド」の「\nを使った複数行検索の際の制限について」
を参照。
0489デフォルトの名無しさん
NGNGなにを先に読んでるんですか?
abcdeに
(?=c)はマッチするが
(?=c)(?=e)はマッチしないのはなぜですか?
0490デフォルトの名無しさん
NGNGそりゃ先読み過ぎ。 (?=c)(?=d)(?=e) ならマッチするでそ。
0491デフォルトの名無しさん
NGNGab(?=c) は (直後に c が来る) ab にマッチする。「次に何
が来るか」を先に読み、それ自身はマッチした文字列には
含まれない。
(?=...) は 0 文字幅なので、何個 (?=...) を連ねてもマッチの
開始点は ab の直後から。つまり ab(?=c)(?=e) は
ab の直後に c が来て、且つ ab の直後に e が来なくては
ならない。なのでこれは絶対にマッチしない。
0492デフォルトの名無しさん
NGNGで同じ文字列の集合にマッチする正規表現をつくれ
そうな気がするわけですが、これは正しいでしょうか?
それとも先読みがないと書けないような例はありますか?
0493デフォルトの名無しさん
NGNG丁寧なレスありがとう
ab(?=c) は (直後に c が来る) ab にマッチする。であれば
(?=c)は(直後に c が来る)何にマッチするのでしょうか?
~~
0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG何故使っちゃダメなんですか?
0496デフォルトの名無しさん
NGNG直後にcが来る空文字列にマッチするのかな。
マッチ位置を取り出すといった使い方ならそれ
なりに意味はありそう。
0497デフォルトの名無しさん
NGNGマッチした部分をどうこうしたい場合、例えば Perl で
s|<tag>.*?</tag>| uc $& |eg; は tag も大文字にしてしまうが、
s|(?<=<tag>).*?(?=</tag>)| uc $& |eg; なら大文字にならない。
また「先読み」だから、次のマッチの開始点は (?=...) の前になる。
$str = 'abcabcabcabc';
$str =~ s/(ab)(ca)/ uc($1) . $2 /eg;
print "$str\n"; # ABcabcABcabc
$str = 'abcabcabcabc';
$str =~ s/(ab)(?=ca)/ uc $1 /eg;
print "$str\n"; # ABcABcABcabc
0498デフォルトの名無しさん
NGNG最初の例は
s|<tag>(.*?)</tag>| uc $1 |eg;
でいけるじゃんと思いますが、2つ目の例は
確かに先読みじゃないと無理っぽいですな。
なるほど〜。
0499デフォルトの名無しさん
NGNGheader_fields = header_string.split(/(?<=\n)(?=\S)/)
0500デフォルトの名無しさん
NGNGs/(ab)/uc $1/ge;
でイイじゃん
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNGs|<tag>(.*?)</tag>| uc $1 |eg;
じゃなくて
s|<tag>(.*?)</tag>|"<tag>".(uc $1)."</tag>"|eg;
とかしないと<tag>と</tag>が削られちゃいますな。
0504デフォルトの名無しさん
NGNG単にabを全部置換したいんじゃなくて、直後にcaがあるものだけ
なのよ。497の例で最後が...abcとここだけ大文字になってないの
がミソ。
0505デフォルトの名無しさん
NGNG</span> [mail] :04/06/01 11:45 ID:pWxUFuLq<>
を
<>mail<>04/06/01 11:45 ID:pWxUFuLq<>
にするにはどうすれば良いのでしょうか?
04/06/01 11:45 ID:pWxUFuLpはもちろん2ちゃんの仕様通りでIDは???の可能性もあります。
さらに年は4桁の可能性もあるんですが…
Speeeeedを使っています。
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGあ、それがですね<>の後ろにも文字列があるんですよ。
本文なので「:」がある可能性も十二分にあるんです。
</span> [mail] :04/06/01 11:45 ID:pWxUFuLq<> の後には何が来るかわかりません。
「</span> [」は必ず1個しかないのでそれを単純に置き換えれば良いのですが、すると
<>mail] :04/06/01 11:45 ID:pWxUFuLq<>
となります。
最後の<>の後には何が来るかわかりませんが<>は必ず来ません。
それに初めの<>の前も名前欄なので何が来るかわかりませんが<>は絶対に来ません。
ですので
行の最後の<>より前にある
] :
を<>に置き換える。
という事をしたいのです。ですので
] :(.*?)<>(.*?)$
を
<>\1<>\2
に置き換えれば…
と思ったのですがダメでした。
どうすれば良いのでしょうか…?
0508デフォルトの名無しさん
NGNG<>$1<>$2<>$3
じゃだめかよ
0509デフォルトの名無しさん
NGNG後半部分は要らないのでは。
あと最初の[]の中身が違うっぽい。
</span> \[([^]]+)\] :(.*)
<>$1<>$2
0510デフォルトの名無しさん
NGNG寝ぼけてたサンクス
0511デフォルトの名無しさん
NGNGおぉ、出来ました。
ありがとうございました。
感謝感謝です。
0512デフォルトの名無しさん
NGNGif($message =~ /http:\/\/([a-zA-Z0-9\.\/\-+#_?~&\%=^\@:\;]+)/i){
$1 =~ s/amp\;//g;
}
のような方法で、$message中のURLを&から&に変える作業をしたいのですが、
上の文で試したところ$1から;の行の間でエラーメッセージが出てしまいました。
どうすればよいのでしょうか?ご指摘の程ご指導をどうか宜しくお願いいたします。
0513512
NGNG0514デフォルトの名無しさん
NGNG正規表現の問題というよりは Perl の問題のような。
my $msg = $1;
$msg =~ s/amp\;//g;
とするとか。
0515512
NGNGでもこれでは$messageは変化しないのでは無いですか?
0516デフォルトの名無しさん
NGNG$message =~ s/(?<=http:\/\/)([a-zA-Z0-9\.\/\-+#_?~&\%=^\@:\;]+)/$_=$1;s#amp;##g;$_/gei;
0517512
NGNG有難う御座います、ためさせていただきます。
0518512
NGNGもうひとつお願いがあります。
これ以降は無駄な馴れ合いになりますが・・・・。
私の本ではしっかり正規表現が記載されていません。
オススメの文献、HPなどなど教えていただきたいです。
これというのも今回の件を例にして言うと、
?<=のような正規表現の意味を理解していません。
教えてもらってばかりでは迷惑がかかりそうなので・・・。。
0519デフォルトの名無しさん
NGNGある程度正規表現を知っていることが条件だけど、
ttp://www.kt.rim.or.jp/~kbk/regex/regex.html
ここなんかは大体の正規表現を載せてる。
あとは各言語ごとの正規表現のリファレンスも参考にしつつ勉強するのがいいと思う。
言語によって正規表現はまちまちだし。
0520デフォルトの名無しさん
NGNGマルチポストの上、そこの1も読まず、か。
http://pc5.2ch.net/test/read.cgi/php/1069245758/1
0521512
NGNG有り難う御座います、参考にさせて頂きます。
早速お気に入りに追加させていただきました。
隅から隅まで読み直したいと存じます。。
時間を割いてのご指導有り難う御座いました。
またお手数とは思いますが、>516を解説頂きたいです。
無理の願いと承知の上ですのでスルーして頂いても結構です。
本当に有り難う御座いました心から感謝しております。
>520
すいません、ご報告有り難う御座いました。
友達に聞いて回った結果かもしれません。
しかし、テンプレに関しては目を通させて頂きました。
ご指摘感謝いたします、これからは注意致します。
0522デフォルトの名無しさん
NGNGまず s/(前半)/(後半)/gei の前半部分から。
(?<= ) のところは lookbehind (戻り読み) ってやつ。
マッチさせたいけど置換対象にしたくないのでこうしてみた。
>>489-504 あたりで議論されてるから見てみて。 (漏れも >>499 で初めて使った。)
その後ろはわかるよね。
後半部分は、正規表現のオプション e を付けてるので、
Perl の式として評価した結果が置換結果となる。
'#' とか使ってるからわかりにくいと思うけど、
$_ = $1; s/amp;//g; $_;
と書き下したらわかるよね。
つまり、前半でマッチしたもののうち、 "http://" 以外の部分を対象として、
s/amp;//g の置換を行ってる。
ところで、これ、もっとスマートに書けないかなあ?
0523512
NGNGまたまた有難う御座います。
それと、マルチ(?)の件失礼いたしました。
スマートにするとしたらマッチしたもの全てにamp;をかける方法が?
しかし全てにでは無く?以降にamp;をかけるほうがイイのかも知れません。
以降は自分で試して見ます。もし他に例があったなら報告したいと思います。
有難う御座いました、重ね重ね御礼を申しageます。
0524デフォルトの名無しさん
NGNGこの顔文字って正規表現っぽいよね。
0525デフォルトの名無しさん
NGNG【2004年12月1日の40日後は2005年1月10日】というように、
ある日付に、指定した日数を足した日付を返したいのですが、
どのようなソースになりますか?
$a = 1+40
月が12ならば、
$a = $a - 31
日 = $a
月 = 月 + 1
↑かなり省略してますが、このような方法しか思い浮かばず。。。
初心者でスイマセン。。。
ご教授お願いいたします。
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG正規表現でのやり方はあるのでは
と思いまして。。。(;´Д`)
0528デフォルトの名無しさん
NGNG素直に何かプログラミング言語を使いなされ。
0529デフォルトの名無しさん
NGNGほんと?ためしてみた?
0530デフォルトの名無しさん
NGNGできるできないの話じゃなくて正規表現でやるべきことじゃないだろ
0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG婆さん:えぇ、本当に
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNGMSあたりに作り直してもらおうぜ。
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG>>525 の答えをどうぞ。
0539デフォルトの名無しさん
NGNG>>528
0540デフォルトの名無しさん
NGNGMS独自の正規表現が使いにくいったらない。
慣れれば違うんだろうけど、ECMAScriptとかPOSIX系の正規表現に慣れちゃうと
他の正規表現は使えませんな。
0541デフォルトの名無しさん
NGNGemacsの正規表現とか?
.NETのRegexは結構マトモですよ。
0542デフォルトの名無しさん
NGNGけど、perlより遅い
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNG引数 pattern 内の文字 引数 expression での一致
===========================================
? 任意の 1 文字
* 0 個以上の文字
# 任意の 1 個の数字 (0 〜 9)
[charlist] 引数 charlist で指定した文字に含まれる任意の 1 文字
[!charlist] 引数 charlist で指定した文字に含まれない任意の 1 文字
もうね(ry
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG縦型探索ならサボれば早くなるってだけの話。
再帰しないヨコ型の探索の実装が少数派ですね。
0547デフォルトの名無しさん
NGNG英語圏の人間は良く使うのかな?
0548デフォルトの名無しさん
NGNG基本的に日本語リテラル文字列をコードに持ち込みたくなんだけども、
どうしても日本語のパターンをコードに書かなきゃいけない、
という場合に使ってます。
0549デフォルトの名無しさん
NGNG\0の必然性がない。
0550デフォルトの名無しさん
NGNG\o{ooooooo...} みたくすればよかったのに。
0551デフォルトの名無しさん
NGNGみないな何にもマッチしないよーってのを調べる方法はないでしょうか?
0552デフォルトの名無しさん
NGNGネタ?
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNG正規表現で類形一致した文字列の長さと
それにかかる計算量の関係はどうなんだろうか?
例えば,
m/hoge/ , m/hogehoge
で類形一致させた場合は何倍の計算量なんだろうか?
0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNGにしてもヒットする単語のお尻に空白がついちゃうのは何が悪いんでしょうか?
0559デフォルトの名無しさん
NGNG貪欲マッチ (最左最長マッチ) するから。
(.{5,10}?) とか (\S{5,10}) とか (.{4,9}\S) とかしる。
0560デフォルトの名無しさん
NGNG() に空白を含めたくない、という意図なら、
ほげ\s*([^\s]{5,10})\s*はげ
とかしないと。
.{5.10} が欲張りで空白も食べちゃうのがキミの意図と違うんだろう。
0561559
NGNGありがとうございました。
0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNG>>154-159
0565sage
NGNGノシ
今コンパイラコンパイラ作ってて、
正規表現によるトークンナイザ実装中だよん。
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNG正規表現で後方検索することってないよね。
不要だからライブラリが存在しないのでは?
Delphiにないから不要といってるのではないよ。
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNG↓
もしかして: 痴漢
0572デフォルトの名無しさん
NGNGGoogleで「gooooogle」を検索 → もしかして: goole
Googleで「goooooogle」を検索 → もしかして: goooooooogle
というか、、goo・・・oogleという名前のサイトっていくつあるんですか?w
0573デフォルトの名無しさん
NGNGShow that there exists an algorithm for determining if L1 ⊆ L2, for any regular languages L1 and L2.
すべての正規言語L1とL2に対して
L1 ⊆ L2であるか確認できるアルゴリズムが存在することを証明せよ。
L1 ⊆ L2っていうのは大きな集合L2の中に小さな集合L1がすっぽり入った図でいいんですよね?
自分なりに考えると
L2 - L1の結果が空集合ΦならL2とL1は重なっていない、
L2 - L1の結果でL2が少し欠けた(でもその欠け < L1)場合はL2とL1は部分的に重なっている。
L2 - L1の結果でL2の欠けた部分=L1ならL1 ⊆ L2
…っていうのじゃダメですよね?
もっとスマートに証明する方法を教えて下さい。
0574デフォルトの名無しさん
NGNG漏れもよく判らんけど、A⊆B ⇔ A∩B=A だから、
・L1,L2が正規言語ならL1∩L2も正規言語になることを示す。
・ふたつの正規言語が等しいか判断するアルゴリズムの存在を示す。
という方針で出来そうな気がする。
0575デフォルトの名無しさん
NGNG>A⊆B ⇔ A∩B=A だから、
あア、ナルほど!
>・L1,L2が正規言語ならL1∩L2も正規言語になることを示す。
これは7つのClosure Propertiesの中で示されている
(L=A∩BでABの両方が正規言語ならLも正規言語)ので
L1⊆L2 ⇔ L1∩L2=L1と読み替えた時点で
そのClosure Propertyを使って正規言語であることが証明できました。
これでやっと次の問題に逝けます。
本当にありがとうございました!
0576デフォルトの名無しさん
NGNG恐れ入った・・・
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNGぬるこ
ぬんぽ
ぬんこ
まるぽ
まるこ
まんぽ
まんこ
0579デフォルトの名無しさん
NGNG{ww: w∈{a, b}*}はRegular languageですよね?
{ww^R: w∈{a, b}*}はNon-regular languageというのは知っています。
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGttp://okweb.jp/kotaeru.php3?q_id=1089369
0584デフォルトの名無しさん
NGNG ̄ ̄ / ,ヘ ヽ∠忍\  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 人 ガッ
 ̄ ̄ i .i \ 〜|/゚U゚|ヽ, ___,, __ _ ,, - _― < >__∧∩
── ヽ勿 ヽ,__ヾy//j i~"" _ ― _ .V`Д´)/ ←>>578
______ ヽ,, / / __,,, -- "" ─ "ー | /
─────── ヽノ ノ,イ ─── ― - / /\|
─────── / /,. ヽ, ── //
______ 丿 ノ ヽ,__,ノ ___ _ _ _
j i
_____ 巛i~ ____ _
危うく見逃すところだった…。
0585デフォルトの名無しさん
NGNGム板でやるなハゲ
0586デフォルトの名無しさん
NGNGハゲてないわい祖チン
0587デフォルトの名無しさん
NGNGそそそ、祖チンちゃうわ!
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNG立ち読みして調べたいんだけど、近くのショボい本屋には売ってないよー。
0590デフォルトの名無しさん
NGNG漏れは正規表現エンジンを作ろうとして買ったらいまいち役に立たなかった
0591デフォルトの名無しさん
NGNGそれは、使う人が欲する情報と、作る人が欲する情報が違うという
意味で受け取ってもよろしいか?
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG「 To: ******.**_**-**.@****.***.** 」
って行だけ残して全部消したいんだけど。。。誰か教えてくれませんか?
0594デフォルトの名無しさん
NGNGで、どこまで試したの?
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNG>>595
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNG初心者板じゃないよ。
0600デフォルトの名無しさん
NGNG+--------------------------+
|^(?!To:).*\n |
+--------------------------+
置換
+--------------------------+
| |
+--------------------------+
…でいけるとおもったけど、ぜんぜん駄目だ…
なんでやーー!!
0601デフォルトの名無しさん
NGNG検索文字列を含むファイルの名称を指定するには
どうしたらいいんでしょう
0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNGという風に _ を抜いて続く文字を大文字にしたいんですが
0604デフォルトの名無しさん
NGNGそういうのはRuby
words = str.split(/_/)
words.each { |word| word = word.slice(0, 1).upcase + word.slice(1).downcase }
str = ""
words.each { |word| str = str + word }
0605603
NGNGでもperlでやる必要が・・。
$hoge =~ s/_./\U$&/g;
$hoge =~ s/_//g;
という二段階にしないとダメ?
0606デフォルトの名無しさん
NGNGs/_(.)/\U$1/g;
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG0609デフォルトの名無しさん
NGNG信者うんぬん言う以前に実装の問題が...
0610デフォルトの名無しさん
NGNG2-3
2 -3
2- 3
2 - 3
をまとめて 2--3にしたいのですが、
$hoge =~ s/(?<=[0-9](|\s*))-(?=(\s*|)[0-9])/--/g;
これではエラーになります。
どう書けばよいのでしょうか。
0611デフォルトの名無しさん
NGNGと書きたいところだろうが、look-behindに可変長
文字列にマッチするパターンは使えないので、
$hoge =~ s/([0-9])\s*-\s*([0-9])/$1--$2/g;
あたりか。
0612デフォルトの名無しさん
NGNG数字一個なら固定長だった。これでいけるはず
$hoge =~ s/(?<=[0-9])\s*-\s*(?=[0-9])/--/g;
0613デフォルトの名無しさん
NGNG$hoge =~ s/([0-9])\s*-\s*([0-9])/$1--$2/g;
でばっちりうまく行きました。数字は1個と限らないので、上の方を使います。
0614デフォルトの名無しさん
NGNG数字の前後に\s*がつくと可変長だが数字だけなら固定長
という意味なので、上も下も数字をひとつしか見てない
のは同じ。
ちなみにベンチとると下のほうが倍近く速いよ(笑)
上の方が先読み使ってないから素朴でわかりやすいという
のはあるかもしれん。
0615デフォルトの名無しさん
NGNGs/(\d+) \s* - \s* (\d+)/$1--$2/xg
0616デフォルトの名無しさん
NGNG0617デフォルトの名無しさん
NGNGすいません、ベンチマークってどうやって取るんですか?
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNGPCRE や Oniguruma の POSIX 互換 API を使ってみるとか。
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNGまずは英文法を覚えろ。話はそれからだ。
0624デフォルトの名無しさん
NGNG改行以外の任意の1文字は、正規表現では
.
となりますが、
改行を含める場合はどのような記述になるのでしょうか。
0625デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNGわわ、すばやいレスありがとうございます。
期待どおりの結果が得られました。
?:
といる記述ははじめてお目にかかりました。
後追いですが、意味を調べて理解しておきます。
ありがとうございました。
0627デフォルトの名無しさん
NGNGダ、ダメでした。
\rがスルーされてしまいます・・・(T_T)
悲しいです〜(ToT)
0628デフォルトの名無しさん
NGNGSOAP:プロシージャコール
と思った場合変換も減ったくれも無いと思った。
0629デフォルトの名無しさん
NGNG漏れは Perl だと [\s\S] をよく使うけど、これじゃダメ?
0630デフォルトの名無しさん
NGNGDOTALL
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/regex/Pattern.html
0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNG\\
じゃ駄目なのですか?
0633デフォルトの名無しさん
NGNGよろぴこー
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNGまじですか。
\\\\
できました。
すげー。ありがとうございます。
0637デフォルトの名無しさん
NGNG>>621
0638デフォルトの名無しさん
NGNGそこんとこ一つよろしく。
0639デフォルトの名無しさん
NGNGPCRE の POSIX 互換 API って実は互換でないの?
0640デフォルトの名無しさん
NGNG最終的にもっとも長いマッチを抽出するけど、
Perl系は途中で検査を打ち切る。
この動作を嫌う人はイヤなんだよね。
0641WZエディターで
NGNG\tと\nの間にある、ランダムな文字、数字を消したいんですが、
どうしたらいいですか?
0642デフォルトの名無しさん
NGNGどうすればよいのでしょうか?
たとえば
hagehogehige から「hoge」だけを残して全て「a」にして
aaaahogeaaaa のようにする場合、などです
0643デフォルトの名無しさん
NGNG\t[^\t\r\n]+\n
→\t\n
0644デフォルトの名無しさん
NGNG([^h]|h[^o]|ho[^g]|hog[^e])*
0645641
NGNG0646デフォルトの名無しさん
NGNG言語に依存するけど、とりあえずhogeにマッチさせてpreとpostだか位置情報使うとか。
0647デフォルトの名無しさん
NGNG何の正規表現? 複数行サポートしてる?
0648641
NGNGすみません。 出来ました。 置換ウインドウの正規のポッチを押のを忘れてました。
が、しかし、リクエストを変えます。
置換を使って、
\tと\nの間にある、ランダムな文字、数字、空白、記号、を消したいんですが、
どうしたらいいですか?
0649641
NGNGACIDTECHNO 160BPM BASS 4.zip
は、検索に引っかかるのですが、
ACIDTechno Club Grooves.zip
は、検索にひっかからないのです。
0650641
NGNGACIDタブTECHNO 160BPM BASS 4.zip改行
は、検索に引っかかるのですが、
ACIDタブTechno Club Grooves.zip改行
は、検索にひっかからないのです。
0651デフォルトの名無しさん
NGNG\t[^\n]+\nなり\t[^\r\n]+\nを試してみれ。
0652641
NGNGで、 \t[^痺]+\n ってマズ使われないであろう、漢字をいれたら、
うまく行きました。 WZエディターが変なのかな?
0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNG>>653 みたいな奴もいるから、今後はソフト名は本文にも書こうな。
0656デフォルトの名無しさん
NGNG十分な改行のみが含まれるテキストファイルにおいて、\n\nは思ったようにヒットするのですが、
\n\n\nのように3つ以上続けると全くマッチしません。これは何故なのでしょうか、ご教授ください。
0657デフォルトの名無しさん
NGNG$aaa = "2十円";の場合
$aaa =~ s/([2-9])十/\10/; とか
$aaa =~ s/([2-9])十/\1\0/; では後方参照と認識されて上手くいきません
後方参照+半角数字を置き換えられる方法を教えてください
0658デフォルトの名無しさん
NGNG$aaa =~ s/([2-9])十/${1}0/;
0659デフォルトの名無しさん
NGNGありがとうございます。無事置換え処理ができました
0660デフォルトの名無しさん
NGNG例えば
def method():
とあった場合に、”method”の部分のみを検索するには
どのような式になりますか?
0661デフォルトの名無しさん
NGNG0662660
NGNGその他にも
def aaaaa():
def bbbbb():
などがあって、要は”def”と”()”の間のみを取りたいんです
0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/language.html
0666デフォルトの名無しさん
NGNGサクラエディタの正規表現置換で単語の先頭を大文字、その他を小文字
としたいのですが
検索文字列は ([0-9a-zA-Z'{]+)
で単語を拾えるのですが
置換文字列は \L\u\1
だと変換できません、単にLやuが入るだけです。
それではと思いTerapadの正規表現プラグインの置換文字列
<\1>>\2<
と言うのも使ってみましたが無理でした。
サクラエディタのスレでも聞いたのですが、詳しい方が居ないようです。
マルチになってしまいますが、2日ほど開けたのでお許し下さい。
正規表現のサイトもいくつも見たのですが、
検索文字列はいくつも書いてあり、参考になりましたが
バカなのか置換文字列に関することを見つけ切れませんでした。
よろしければ、どなたか詳しい方解説お願いします。
0667666
NGNG([0-9a-zA-Z'])(\a*)
というのでも試してみました。
0668666
NGNGterapadでは前出の方法で英単語の頭を大文字、その他を小文字に置換できます。
例
I'M NOT IN lOVE, SO DON'T FORGET IT
が↓
I'm Not In Love, So Don't Forget It
0669デフォルトの名無しさん
NGNGその後どう処理するか(この場合は単語のキャピタライズ)は処理系依存になります。
PerlやEmacsなどの定番ツールなら別だろうけど、ここでじゃなく
エディタの専用スレもしくは掲示板の方が回答を得られるんじゃないかな。
0670デフォルトの名無しさん
NGNGそうだったのですか、
ありがとうございました。
0671デフォルトの名無しさん
05/02/02 14:45:13正規表現1 && 正規表現2
みたいなかんじで。
0672デフォルトの名無しさん
05/02/02 15:17:15処理系によっては可能かもしれない。
#!/usr/local/bin/ruby
require "eregex"
p "foobar" =~ /foo/ & /bar/
0673デフォルトの名無しさん
05/02/02 17:18:06perl の場合:
(?=foo)bar
0674デフォルトの名無しさん
05/02/02 17:44:29それを受理するオートマトンは、
2つのオートマトンの状態の積を作ればよい。
いや、なんとなく専門用語を並べてみただけ。実はよく知らん。
0675デフォルトの名無しさん
05/02/06 10:46:33欲しいのはマッチした結果の論理積だから無理だろ。
0676デフォルトの名無しさん
05/02/09 20:28:220677デフォルトの名無しさん
05/02/10 01:04:520678デフォルトの名無しさん
05/02/10 04:12:320679デフォルトの名無しさん
05/02/10 06:06:59/⌒\ \ 〔〔 |Ξ (,,゜Д゜)つ /⌒^\\ < >
//⌒\ |◎| _/ ||Ξ/ つ¶¶ / /⌒\|◎| < はくそリーナへ
/ )|日|\/__\|/ ̄ ̄ ̄ ̄\ _____.|日|\_ < >
/ ● ___ \|/ ● ●/\  ̄\__〉 ∨∨∨∨∨∨∨∨∨∨
/ Y Y )ヽ Y Y \..\ _/^~ /^|/^|__
| ▼ | | /. )).| | ▼ |/\\ /^/.^/_⊃
|_人__ノ⌒| |/ノノノ\__人 、_人_| \\______ __/^/^/^/⊃
/ ̄ \__| ||  ̄/目>、 ___ノ\. /| ̄ |  ̄  ̄ ||γ〜〜〜 |
/ / ./|___||_/ ̄/{三|三|三}| \/|||‐‐‐‐‐‐\ ⊂二⌒) γ /
/__/_./ \_|ロ/ ̄{三|三|三}ロ| ^^|____\_||{ ヽーー/
/ / |/ 〉−−−−−〈_  ̄ ̄ ̄ ̄ ̄ ̄
/======/ | / ̄ ̄ ̄|^^ ● ^^ ●)\
/~/⌒|\.|| / | ̄ ̄__|_ ▼ |  ̄|
( ̄()|⌒| )|| / / / /ミ三\_人__/三{.|
( ̄()|_|/ ||/ / / / /  ̄/|:::::|::::| \
( ̄()/)/ ̄ / / / / ./ |:::::|::::|\ \
^( ̄)/ /__/_/ / / \__/ \ \
 ̄^ /^^ / / \ \ | ̄ ̄|
/ / / \ / |
__/三|/ / >三三\___/
/ \/ ̄ ̄〉 /\ / /
/\ |__/| / | / /
/ | / / / |_/ __/
0680デフォルトの名無しさん
05/02/11 15:15:23http://tiny-rex.sourceforge.net/
これを見つけたんですが、結果がおかしいです。
"xxxxxxx"に対して"(x{1,5})xx"を検索すると結果は、
[0]xxxxxxx
[1]xxxxx
match! 2 sub matches
となりましたが、おかしいですよね?ちなみにサンプルはいじっていません。
あるいは、どこかにこれと同じぐらい小さいライブラリってないでしょうか。
機能はある程度削ってあってもいいので。
0681680
05/02/11 16:44:37[0]は正規表現にマッチする部分全てで、
[1]以降は( )でくくった部分正規表現の結果が入るということでした。
0682デフォルトの名無しさん
05/02/12 12:58:410683デフォルトの名無しさん
05/02/12 15:39:280684デフォルトの名無しさん
05/02/12 16:33:48直上にある実装よめよ
0685デフォルトの名無しさん
05/02/12 18:13:14Henry Spencer タンのやつとか
0686デフォルトの名無しさん
05/02/19 03:42:001,"Hiphop1","ACID"
4,"Xtortion","mp3"
…
といったフィールドが3つのcsvファイルです。これを、
(ACID) Hiphop1 CD1
(mp3) Xtortion CD4
と変化させたいです。
どうしたらいいでしょうか? 教えて君ですみません。 よろしくお願いします。
0687デフォルトの名無しさん
05/02/19 03:48:12(ACID) Hiphop1 CD1
(mp3) Xtortion CD4
…
と、100行並んだファイルから、
(ACID) Hiphop1 CD1.txt
(mp3) Xtortion CD4.txt
(中身はなにかが書いてあっても、書いてなくてもどちらでもよい)
といった、テキストファイルを100個作るにはどうしたらいいでしょうか?
0688デフォルトの名無しさん
05/02/19 03:49:210689デフォルトの名無しさん
05/02/19 03:57:310690686
05/02/19 04:36:20これで、フィールド1の最初の数字が変数1に抽出できますか?
0691686
05/02/19 04:51:34置換 CD$1
なんてやってもうまくいきません。 ()が閉じていない、などとおこられます。
0692デフォルトの名無しさん
05/02/19 11:05:35WZ5でそのまま置換できたぞ?
どこで()でなんとかって怒られるんだ?
マクロか?
0693686
05/02/19 20:43:32WZ5の置換タブを開き、正規のポッチを押して
検索には ^(.+),"(.+)","(.+)"
置換には (\3) \2 CD\1
で、OKを押すと
「正規表現 ()が閉じていません」
とゆうエラーメッセージが6回出てきます。
0694デフォルトの名無しさん
05/02/19 22:15:49うちのWZ5ではそのままでできた。
君んとこのWZの問題だろう。
0695686
05/02/19 22:17:49>perlかなんかでスクリプト書け。そっちのほうが話が早い。
じゃあ、WZエディタはあきらめて、perlでやることにします。
取りあえずは、ActivePerlをダウンロードしてインストールすればいいんですか?
http://www.rfs.jp/sitebuilder/perl/08/02.html
0696686
05/02/19 22:20:32了解しました。 多分どこかの設定が悪いのかもしれません。
0697デフォルトの名無しさん
05/02/20 17:37:510698686
05/02/20 19:01:48ちなみに、>>693ぐらいが書けるのは、正規表現の入門者、初級者、中級者、
のどのへんでしょうか?
これで、>>696の問題は解決したのですが、>>687はWZ5のマクロでやろうと思います。
2ch内にWZマクロのスレッドなんてないでしょうか?
0699デフォルトの名無しさん
05/02/20 20:48:010700デフォルトの名無しさん
05/02/24 22:45:45これ何とか短く書く方法教えて下さい
これ何とか短く書く方法教えて下さい
$_ = "$in{'arg_0'}<>$in{'arg_1'}<>$in{'arg_2'}<>$in{'arg_3'}<>$in{'arg_4'}<>$in{'arg_5'}<>$in{'arg_6'}<>$in{'arg_7'}<>$in{'arg_8'}<>$in{'arg_9'}<>$in{'arg_10'}<>\n";
0701デフォルトの名無しさん
05/02/24 22:52:200702デフォルトの名無しさん
05/02/24 23:16:36ていいますと?
0703デフォルトの名無しさん
05/02/24 23:35:40あ、いや、すまんす、題意を勘違いしてた。
というか、質問の意味がわからんのだけど、これと正規表現とどう関係が?
0704デフォルトの名無しさん
05/02/24 23:49:15正規表現では無理なんですか?
0705デフォルトの名無しさん
05/02/25 00:57:230706デフォルトの名無しさん
05/02/25 01:19:20繰り返し構文でも使っとけ
0707デフォルトの名無しさん
05/02/25 11:12:05Perlコーディング初心者質問スレ Part 40
ttp://pc5.2ch.net/test/read.cgi/php/1106816922/l50
0708デフォルトの名無しさん
05/03/02 14:15:08で、111と222を取り出したい場合
検索と置換にはどう書けばいいんでしょうか
0709デフォルトの名無しさん
05/03/02 15:07:260710デフォルトの名無しさん
05/03/19 17:30:450711デフォルトの名無しさん
05/03/19 20:12:49http://www.guguru.jp/
0712デフォルトの名無しさん
05/03/20 08:05:550713デフォルトの名無しさん
05/03/20 08:18:37(([^/]*)|.*/.*/(.*))で$2と$3を取り出すとか適当なことを言ってみる
0714デフォルトの名無しさん
05/03/20 22:51:14(?<!/)(?://)+(\w+)
状況がよく分からないので細かいところは適当にいじってくれ。
0715デフォルトの名無しさん
05/03/20 23:01:47こういうタグがあったとしてproperty="prop"の""内が全て英小文字かって
どう書きますか?
0716デフォルトの名無しさん
2005/03/21(月) 10:24:59エイホ、ウルマン、セシィの「コンパイラ 原理・技法・ツール」を読んでいてふと疑問に思ったのですが、
正規表現からは機械的に有限オートマトンを構成できますが、
逆に有限オートマトンから機械的に正規表現を構成する方法っていうのはありますか?
「この本読めば載ってる」とかでよいので、情報があったらよろしくお願いします。
0717デフォルトの名無しさん
2005/03/21(月) 11:10:22> 逆に有限オートマトンから機械的に正規表現を構成する方法っていうのはありますか?
あります。
> 「この本読めば載ってる」とかでよいので、情報があったらよろしくお願いします。
シプサーとか。
0718デフォルトの名無しさん
2005/03/21(月) 21:36:01レスありがとうございます。
↓これですよね、多分。。。
計算理論の基礎 共立出版 マイケル シプサ (著)
0719デフォルトの名無しさん
2005/04/04(月) 18:35:48perl5.0で携帯から、絵文字入力があったばあい(バイナリ16進で4桁)に、それを検知して
s-jisの(アスキー文字の16進4桁)に変換したいのですが、
下記の、正規表現でできると聞きました。実際に使用するとうまく変換されているようなのですが、
なぜこれで変換できるのかわかりまえん。わかるかたおながいします
s/\G((?:[\x80-\x9F\xE0-\xF2\xF4-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF])*)([\xF3]
[\x40-\x7E\x80-\xFC])/$1.'['.unpack('H4', $2).']'/ego;
0720デフォルトの名無しさん
2005/04/04(月) 20:20:190721デフォルトの名無しさん
2005/04/04(月) 20:43:420722デフォルトの名無しさん
2005/04/04(月) 22:12:14俺も作ってみたいんだよね。
教科書は読んだけどそれだけじゃ足り無そうだからさ。
0723デフォルトの名無しさん
2005/04/05(火) 03:48:40事前に思ってたほどには難しくなかった。NFA、DFA、オートマトン、
このあたりのキーワードさえ押さえておけば、一通りの機能は
実装できると思う。
配布されているライブラリ並みに高速化を図ろうとすると、
ちと苦労するかもしれんけど。
自分で実際に作ってみると、検索効率の良い正規表現と悪い表現とが
身に染みて分かるので、なかなかいい勉強になった。
0724デフォルトの名無しさん
2005/04/05(火) 08:24:20wchar_t決めうちってことはNFAになるのかい?
それとも教科書的でない方法を使えばDFAでも実装できるのかな?
作ったものは公開してないの?
0725デフォルトの名無しさん
2005/04/05(火) 13:08:49そう>NFA
公開は今のところしてない。それほど秀でたものでもないんで…
0726デフォルトの名無しさん
2005/04/06(水) 07:15:18そおか。
しかし、教科書の次に行くのに参考になるものが無いような気がするので、
作り始めのソースなんておいしそうなんだけどなぁ。
ほしい人たくさんいそうな気がする。
俺もほしいけど。
機能満載で技巧凝らしたようなソースになっちゃうと読むのが難しいよ。
0727デフォルトの名無しさん
2005/04/06(水) 07:28:12ttp://www2.starcat.ne.jp/~fussy/algo/algo7-5.htm
ttp://www2.starcat.ne.jp/~fussy/algo/algo7-6.htm
7-6のほうには、ソースを固めたzipも置いてあるんで、色々参考になるかと。
0728デフォルトの名無しさん
2005/04/06(水) 08:06:50ありがと。
ちょっと難しいね。
ビットマスクになってる部分を動的配列にすると日本語も使えるようになるのかな?
そんな簡単じゃないんだろうか?
0729デフォルトの名無しさん
2005/04/06(水) 09:45:15自分が使ったのは、文字コードの範囲を動的配列に押し込んでゆくという方法。
[0-9@]なら、0x0030-0x0039, 0x0040-0x0040という具合に。
ただビットシフト+マスクを使う方法に比べると、if文を通る回数が増える分、
速度の点ではやっぱり不利。
何かうまい文字クラスの扱い方があればいいんだけどねえ。なかなか思いつかなくて。
0730デフォルトの名無しさん
2005/04/10(日) 01:14:410731730
2005/04/10(日) 01:26:42自己レス。
POSIX 1003.2
・Basic Regular Expression
・Extended Regular Expression
0732デフォルトの名無しさん
2005/04/20(水) 12:22:27それにマッチするものが(例えば) "a" から始まる文字列の中にのみあるか、
そうとは断定できないか判定する方法はないでしょうか?
0733デフォルトの名無しさん
2005/04/20(水) 13:23:44マッチする関数やメソッドに (例えば) "a" から始まる文字列を実際にくべてみる。
0734デフォルトの名無しさん
2005/04/20(水) 16:19:15嬉しいのですが。
0735デフォルトの名無しさん
2005/04/20(水) 17:06:48自作するのなら、ECMAScriptのそれに倣うという手も。
確かboost::regexもそうだったはず。
0736デフォルトの名無しさん
2005/04/20(水) 18:19:33どういう用途なの?
0737デフォルトの名無しさん
2005/04/20(水) 20:10:59事前に辞書順にソートされてるファイルに対しマッチングをしたいのです。
ちなみに与えられる正規表現が "^" から始まる事は保証されています。
0738デフォルトの名無しさん
2005/04/20(水) 20:23:270739デフォルトの名無しさん
2005/04/20(水) 21:06:560740デフォルトの名無しさん
2005/04/20(水) 21:22:07まず、よほど速度が気になるのでない限り、何も考えず普通にマッチを試した
方がいいと俺は感じる。(正規表現とは無関係なソフトウェア工学的センスの話だけど)
で、ふつう、マッチする最初の1個を調べる作業は、ファイル全体を調べるよりは
効率がいいよね?もしこれが>>732のケースでも成り立っているなら、...
1. 一番最初にマッチするもの一個のみを調べる。その行番号L1を覚えておく。
2. ソートされたファイルを、上下逆順に並べ替える(or逆順にソートする)。
3. 逆順のファイルに対して、一番最初にマッチする行の行番号L2を覚えておく。
4. N1〜(全行数-N2+1)までをsedとかで切り出して、その間で本当のマッチング。
する戦略は、候補のひとつだと思う。
0741740
2005/04/20(水) 21:23:310742デフォルトの名無しさん
2005/05/16(月) 10:16:170743デフォルトの名無しさん
2005/05/30(月) 21:15:590744デフォルトの名無しさん
2005/05/31(火) 00:40:23正規表現ではどのようにすればよいでしょうか。
0745デフォルトの名無しさん
2005/05/31(火) 02:43:49フォーマットなら環境依存。エディタならそのエディタを書いたほうが吉。
0746デフォルトの名無しさん
2005/05/31(火) 03:49:17$text =~ s/^(.*)$/"${1}"/gm;
0747デフォルトの名無しさん
2005/05/31(火) 07:10:23すいません。秀丸エディタなのですが、${1}の部分を
どう表現すればいいのかが分からないのです。
0748デフォルトの名無しさん
2005/05/31(火) 08:00:56プゲラ
0749746
2005/05/31(火) 12:42:460750デフォルトの名無しさん
2005/06/01(水) 00:03:51どう書いたらいいでしょうか?Java です。
処理前
abc@def@abc
この文字列の abc を ABC にして複写。
処理後
abc@def@abc ABC@defABC
0751デフォルトの名無しさん
2005/06/01(水) 10:36:44何も難しいことはないと思うんだが、何がわからなかったんだろう。
String one = "abc@def@abc";
String another = one.replaceAll("abc", "ABC");
0752747
2005/06/01(水) 20:41:54どなたかお願いします。
0753746
2005/06/01(水) 20:59:37「秀丸 正規表現」でぐぐったらこんなの出てきたよ。
http://www.shuiren.org/chuden/teach/hidemaru/seiki/02.htm
0754デフォルトの名無しさん
2005/06/02(木) 03:25:14それだと、
処理前
abc@def@abc
処理後
ABC@defABC
ですね。
ではなくて、
処理後
abc@def@abc ABC@defABC
にしたいのです。
0755デフォルトの名無しさん
2005/06/02(木) 04:35:36ヒント
back reference (前方参照) ※>>74
0756デフォルトの名無しさん
2005/06/02(木) 10:30:480757デフォルトの名無しさん
2005/06/02(木) 11:59:48ああ、なるほど。
でも、>>751 の後 one + " " + another で文字列繋げりゃいいだけでは?
(「@」の扱いがよくわからんが)
0758デフォルトの名無しさん
2005/06/02(木) 14:16:38flex
0759デフォルトの名無しさん
2005/06/02(木) 16:33:48flexは字句解析用。それ向きに正規表現を使うならいいけどさ。
正規表現のマッチとかだけを扱いたいならregex(3)あたりでしょ。
re_comp(3),re_exec(3)という関数名だったり、regcomp(3),regexec(3)...
という関数名だったりするから、その辺でmanしてみ。
regexという同じ呼び名で、違うバージョン違う仕様のものが
多数あるから注意してね。つうか、詳しい人解説よろ。
0760デフォルトの名無しさん
2005/06/02(木) 18:02:27ANSI標準には含まれてない。
0761デフォルトの名無しさん
2005/06/02(木) 19:46:16それのwchar_t版もあるから、日本語使うには便利だよ
まあ大概の正規表現ライブラリにはPOSIX互換インタフェース
ついてるけどね
0762デフォルトの名無しさん
2005/06/02(木) 19:49:45「Cで」
0763デフォルトの名無しさん
2005/06/02(木) 19:58:04Rubyとかでも使われてる正規表現エンジンだよ。
0764デフォルトの名無しさん
2005/06/02(木) 20:10:440765デフォルトの名無しさん
2005/06/02(木) 20:13:13って雰囲気だったのだが、最近は違うの?
0766デフォルトの名無しさん
2005/06/03(金) 01:18:17make clean;make;make clean; makeの繰り返し
#define ONIG_EXTERN extern // use static link
#ifdef _MSC_VER /* Visual C++:autolink */
#if defined(_MT) && defined(_DLL) && defined(_DEBUG) /* /MDd */
#pragma comment(lib, "onig_s_mdd.lib")
#elif defined(_MT) && defined(_DLL) && !defined(_DEBUG) /* /MD */
#pragma comment(lib, "onig_s_md.lib")
#elif defined(_MT) && !defined(_DLL) && defined(_DEBUG) /* /MTd */
#pragma comment(lib, "onig_s_mtd.lib")
#elif defined(_MT) && !defined(_DLL) && !defined(_DEBUG) /* /MT */
#pragma comment(lib, "onig_s_mt.lib")
#elif !defined(_MT) && !defined(_DLL) && defined(_DEBUG) /* /MLd */
#pragma comment(lib, "onig_s_mld.lib")
#elif !defined(_MT) && !defined(_DLL) && !defined(_DEBUG) /* /ML */
#pragma comment(lib, "onig_s_ml.lib")
#else
#error compiler option
#endif
#endif
0767デフォルトの名無しさん
2005/06/03(金) 01:20:370768デフォルトの名無しさん
2005/06/03(金) 01:23:37makeだとかなりバッチ風になっちまうんでbjamみたいな方向がいいかも。
0769デフォルトの名無しさん
2005/06/03(金) 06:11:50ありがとうございます。やっとできました。
0770デフォルトの名無しさん
2005/06/04(土) 08:41:41ソースが10KBぐらいのものでありませんか?
0771デフォルトの名無しさん
2005/06/04(土) 11:37:400772デフォルトの名無しさん
2005/06/04(土) 12:40:440773デフォルトの名無しさん
2005/06/04(土) 13:32:40どういう調査をしてその結論に達したのか報告書を
まとめてください。
0774デフォルトの名無しさん
2005/06/04(土) 23:45:050775デフォルトの名無しさん
2005/06/05(日) 09:22:43イヤならいいですよ。ただあなたの発言に信頼性がないというだけの話ですから。
0776デフォルトの名無しさん
2005/06/05(日) 09:29:17本当はイヤだからじゃなくて能力の問題だから。
0777デフォルトの各無しさん
2005/06/05(日) 15:08:210778デフォルトの名無しさん
2005/06/05(日) 15:18:170779デフォルトの名無しさん
2005/06/07(火) 00:33:44T-Rex a tiny regular expression library
ttp://tiny-rex.sourceforge.net/
これが結構小さいよ。
それだけに機能が限定されてるけどね。
0780デフォルトの名無しさん
2005/06/08(水) 07:54:15-rw-r--r-- taiji/nobody 4689 1998-12-17 20:38:09 rege-0.51/rege.h
-rw-r--r-- taiji/nobody 45180 1998-12-17 22:01:50 rege-0.51/rege.c
-rw-r--r-- taiji/nobody 2268 1998-12-15 18:09:18 rege-0.51/escs.h
0781デフォルトの名無しさん
2005/06/22(水) 15:30:28ちなみの改行が何行あるかはまちまちなんですが。
%s/【項目】.*\n.*\n.*\n.*\n.*\n.*\n.*【/【/
0782デフォルトの名無しさん
2005/06/22(水) 19:57:310783デフォルトの名無しさん
2005/06/24(金) 22:36:23どうやればいいんですか?
0784デフォルトの名無しさん
2005/06/24(金) 22:44:16RFC3986 に載っている ABNF から、君の使っている
実装にあった正規表現を起こせばいいんじゃないかな。
ftp://ftp.rfc-editor.org/in-notes/rfc3986.txt
0785デフォルトの名無しさん
2005/07/17(日) 14:38:40テキストの文字列置換が出来るソフトで正規表現を使い、
以下のように変換したいんです。
変換前 変換後
ABCD → 12C3
BCDE → 45D6
CDEF → 78E9
3文字目など、特定の場所を変換したくないんです。
テキストの文字列置換で比較的気に入ったのを見つけたんですが、
正規表現の使い方でうまくいきません。
AWK等の正規表現が使えるようなんですが…。
どなたかアドバイスお願いしますm(__)m
ttp://www.vector.co.jp/soft/win95/util/se114391.html
0786デフォルトの名無しさん
2005/07/17(日) 15:21:25正規表現でやることじゃない気がするな
0787デフォルトの名無しさん
2005/07/17(日) 17:06:15無理ってことでしょうか?
0788デフォルトの名無しさん
2005/07/17(日) 17:15:270789デフォルトの名無しさん
2005/07/17(日) 17:25:30マルチ?
0790デフォルトの名無しさん
2005/07/17(日) 21:04:150791デフォルトの名無しさん
2005/07/17(日) 21:09:22単に分からないだけかと思われw
0792デフォルトの名無しさん
2005/07/17(日) 21:24:010793デフォルトの名無しさん
2005/07/17(日) 21:28:170794デフォルトの名無しさん
2005/07/17(日) 21:38:470795デフォルトの名無しさん
2005/07/17(日) 21:42:060796デフォルトの名無しさん
2005/07/17(日) 22:51:04同じような質問がhttp://pc8.2ch.net/test/read.cgi/tech/1120720976/
でありましたけど、、、
全然回答になってません(汗
やはり正規表現では無理ってことですか?
0797デフォルトの名無しさん
2005/07/17(日) 23:12:32通常の正規表現を使った置換では難しいだろ。
簡単に考えて
(a-1)変えたくない文字を使われてない文字やパターンに一旦置換しておいて、
(a-2)変換を施して、
(a-3)(a-1)でやった置換を元に戻す
とか、
(b-1)変えたい部分の文字を特別なパターンに置換する(quoteするとか、
前に特別な文字を付加するとか)
(b-2)変換を施す。(大抵、一緒にquoteもはずせる)
とかをsedではよく見かける。perlとかだと、置換にこだわらない手続き的な
アルゴリズムに走れるので、そういうことはやらない。
>>785には適用しても意味がないだろうが、行中で場所を入れ替える
なんてことをやる場合も時々ある。(特定のカラムを先頭に移動するとか)
0798デフォルトの名無しさん
2005/07/17(日) 23:14:250799デフォルトの名無しさん
2005/07/17(日) 23:41:50>>797でもいろいろ書いてくれてるけど、役割が違いすぎ。
適当なスクリプト書いたほうが早いよ。
置換したいとことしたくないところを分割して(固定長ならいくらでも方法がある)
置換したいとこだけ置換して(パターンが決まっているわけじゃなくて単純置換なら正規表現不要)
全部くっつける、ってことだよね。
0800デフォルトの名無しさん
2005/07/18(月) 09:02:51うーんメタキャラの判定とか甘いな
>>785にあるように
ABCD → 12C3
BCDE → 45D6
にしたいっていっても、
テキストの上から順に判定とかじゃなくて
左から判定している悪寒
無理っぽい
0801デフォルトの名無しさん
2005/07/18(月) 18:42:10>>788,>>791,>>793あたりを見ると>>785本人がやってるとしか思えん。
そもそもマルチしたのを開き直るようなやつにレスすんなよ。
なにが全然回答になってないだよ。アホか。
そんなこと知らんよ。
0802デフォルトの名無しさん
2005/07/18(月) 22:55:01この話題にはまるで興味無いんだが、
ポストが無いとかよくわかんねー理由で自演認定するのはやめてくんねーかな。
それに、その文脈で言ったらお前も >785 ってことになるんじゃないのか?
0803デフォルトの名無しさん
2005/07/19(火) 02:13:51薄識の自治厨はPC初心者板にカエレ(・∀・)
0804デフォルトの名無しさん
2005/07/20(水) 04:05:34とりあえずマルチと自演は死んでくれ。
0805802
2005/07/20(水) 13:45:34伝わらなかったか?
0806デフォルトの名無しさん
2005/07/20(水) 20:46:09お前が一番ウザイってw
0807デフォルトの名無しさん
2005/07/21(木) 00:23:20他の奴にも聞くなんて貴様、俺様が信用できないのか!ってか。
もう幼児的万能感丸出し。馬鹿じゃねえの信用できないに決まってるでしょ。
こういう人は医者にはならないで欲しいね。
セカンドオピニオンだと!(怒)もうあなたを担当するのはお断りだっ!みたいな
まあマルチそのものが悪いのではなく、回答者に謝意を表さないのがいけないというのなら
心情的にわからんでもない。
でもアンタ、回答するのだって(質問者と同じく)アンタ自身のエゴでやってるってこと
忘れてないか?
0808デフォルトの名無しさん
2005/07/21(木) 00:28:110809デフォルトの名無しさん
2005/07/21(木) 00:28:53例えが悪い。マルチは複数の医者に同時にかかっている状態。
0810デフォルトの名無しさん
2005/07/21(木) 00:30:19マルチポストってのはクロスポストがあってはじめて非難されるべきもんだろ。
0811デフォルトの名無しさん
2005/07/21(木) 01:23:51うん。分ってる。
だからセカンドオピニオンを例えに出した。
0812デフォルトの名無しさん
2005/07/21(木) 01:23:52だが、回答者側がマルチをダメと言うのも、当然質問者と同じく勝手にしても構わないだろ?
ダメと言われたくなければ、言われない所でマルチをすれば良い。
君の例えで言うならセカンドオピニオンを用意するときに、
それを嫌だという医者を使う必要はない。それでも構わないという医者のところに行けば良いだけだ。
0813812
2005/07/21(木) 01:27:570814デフォルトの名無しさん
2005/07/21(木) 02:02:46マルチがダメだって言うのは俺様が信用できないのか?って事じゃないだろ。
0815デフォルトの名無しさん
2005/07/21(木) 08:17:57じゃあ何?漏れは>>810と同意見なんだが。
0816デフォルトの名無しさん
2005/07/21(木) 08:54:00マルチに教えないのも勝手
好きにすればいい
0817デフォルトの名無しさん
2005/07/21(木) 09:57:03問題の本質はマナーじゃない気がする。
0818デフォルトの名無しさん
2005/07/21(木) 10:41:48プログラム板自治スレッド その2
http://pc8.2ch.net/test/read.cgi/tech/1051039126/
0819デフォルトの名無しさん
2005/07/21(木) 14:36:000820デフォルトの名無しさん
2005/07/21(木) 20:30:37このスレの住人には「スルー」という概念がないのでしょうか?
スレ違いでしょうかね^^;
0821デフォルトの名無しさん
2005/07/21(木) 20:44:36お望みどおり、スルーしますね。
↓というわけで、次の質問の方どうぞー。
0822デフォルトの名無しさん
2005/07/21(木) 21:06:23ttp://www.oreilly.co.jp/books/4873111307/errata.0.html
0823デフォルトの名無しさん
2005/07/21(木) 21:30:290824デフォルトの名無しさん
2005/07/21(木) 23:47:23その「有り難い」ってのが排他行動だっての。
そっちのスレはそっちのスレ。
こっちのスレはこっちのスレでマルチに進めれば良い。
0825デフォルトの名無しさん
2005/07/22(金) 00:02:190826デフォルトの名無しさん
2005/07/22(金) 01:21:31マルチがダメって奴は正直理解できん。別に全然かまわんだろ。
0827デフォルトの名無しさん
2005/07/22(金) 02:41:160828デフォルトの名無しさん
2005/07/22(金) 08:19:53お前が教えてやればマルチがダメって奴は手も足も出せない
0829デフォルトの名無しさん
2005/07/22(金) 09:11:34お前みたいな馬鹿がいるからあちこちで同じ事を聞かなければいけなくなる訳だ。
信用できねーもん。
0830デフォルトの名無しさん
2005/07/22(金) 09:39:030831デフォルトの名無しさん
2005/07/22(金) 10:30:190832デフォルトの名無しさん
2005/07/22(金) 18:58:21スレ違いだとかと言い出す自治厨を標榜している奴に限って
た い し た 知 識 を 持 ち 合 わ せ て い な い の で
と り あ え ず 難 癖 つ け て 叩 く
ということでFA?
0833デフォルトの名無しさん
2005/07/22(金) 19:00:190834デフォルトの名無しさん
2005/07/22(金) 19:06:39お前が教えてやらないのは何故
アホだから?
0835デフォルトの名無しさん
2005/07/23(土) 01:00:04ああ、あほらしくて眠い。
0836デフォルトの名無しさん
2005/07/23(土) 01:23:12「正規表現」って何ですか?レベルのクズの質問ばっかだし。
0837デフォルトの名無しさん
2005/07/23(土) 01:32:34ところで正規表現って何ですか
0838デフォルトの名無しさん
2005/07/23(土) 15:26:460839デフォルトの名無しさん
2005/07/23(土) 16:24:35ようするにマルチの排除
0840デフォルトの名無しさん
2005/07/31(日) 17:32:46例えば、
----------------
IP = 10.0.0.1 ;;
IP = 192.168.0.1 ;;
----------------
と言う内容のテキストが有ったとして、
$ grep '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*' ip.txt
ならばIPアドレスの部分にマッチすることは確認済。
で、
$ sed -e 's/^.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' ip.txt
とすればIPアドレスを抽出出来そうに思えるのだけれど、何故か
0.0.0.1
2.168.0.1
と言う具合に第一オクテットはひと桁になってしまう。
理由が分からず困ってるので、誰かお願い。
0841デフォルトの名無しさん
2005/07/31(日) 17:35:38^.* が最も長くなるところでマッチしている。
0842デフォルトの名無しさん
2005/07/31(日) 21:04:06成る程、そういうことか……
$ sed -e 's/^[^0-9][^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' ip.txt
で、今回は目標達成。
でもこれってIPアドレスの前に数字があると駄目だね。
汎用的に使える正規表現はどんな物なのだろうか?
自分でも考えてみるけれど解が有るならばどうかよろしく。
0843デフォルトの名無しさん
2005/07/31(日) 21:20:290844デフォルトの名無しさん
2005/07/31(日) 23:57:200845840
2005/08/01(月) 20:57:34$_ =~ m/(\d{1,3}\.){3}\d{1,3}/ ;
print "$& \n" ;
出来れば当初考えたようにsedでやりたいんだけれど、出来ないのかな?
0846デフォルトの名無しさん
2005/08/01(月) 22:54:08とか
sed -e 's/^/ /;s/.*[^0-9]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/' ip.txt
でいけるけどperlの方がらくそうだな。
0847デフォルトの名無しさん
2005/08/01(月) 22:57:410848デフォルトの名無しさん
2005/08/01(月) 23:30:54同じ理由であるかのように誤解されたくはないものだな...ってかスレ違い
0849デフォルトの名無しさん
2005/08/02(火) 00:51:09sed でも \{ \} は使える。
sed 's/\(.*[^0-9]\)\{0,1\}\(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\).*/\2/' ip.txt
0850デフォルトの名無しさん
2005/08/16(火) 02:13:29title="bbb"
style="pading:0;">
<div id="002" class="aaa"
title="bbb"
style="pading:0;">
みたいなのがたくさんあります。
任意のidを含むdivを選択する正規表現はどのように書けばよいでしょうか?
複数行は漏れにはむりぽ。。。
0851デフォルトの名無しさん
2005/08/16(火) 13:26:330852デフォルトの名無しさん
2005/08/16(火) 14:22:250853デフォルトの名無しさん
2005/08/16(火) 14:58:410854デフォルトの名無しさん
2005/08/17(水) 04:52:010855デフォルトの名無しさん
2005/08/17(水) 15:59:270856デフォルトの名無しさん
2005/08/18(木) 04:48:32どっちかというとパーサだな。
rubyだとこんなモジュールがある。
html.findattr("a", "href") { |url|
if url == '../' then
"index.html"
else
url
end
}
0857デフォルトの名無しさん
2005/08/18(木) 13:26:49詳しく!
0858デフォルトの名無しさん
2005/08/18(木) 23:08:24リンクの抽出とかタグの検索とかをイテレータで処理する奴。
階層構造処理をやらんのでHTMLが壊れていても動く。
アップして欲しい?
0859デフォルトの名無しさん
2005/08/19(金) 13:42:08やっぱ要らない。
0860デフォルトの名無しさん
2005/08/19(金) 16:09:15これをマッチさせ、
それぞれの"(〜)"をグループとして順番に抽出したいのですが、正規表現ではどう書けばよいでしょうか。
ご教授お願いいたします。
0861デフォルトの名無しさん
2005/08/19(金) 16:18:43実装する言語のループの機能を使ってひとつひとつ抽出することになるかと。
何で実装しようとしているのがわかれば答えれるかも。
0862デフォルトの名無しさん
2005/08/19(金) 16:21:03当方Javaです。すみません。
0863デフォルトの名無しさん
2005/08/19(金) 23:39:10.split("\\^")
0864デフォルトの名無しさん
2005/08/20(土) 00:48:32"\\(.+?\\)(\\^\\(.+?\\))+"でマッチさせてそれ使えば出来ますね。
判りました!ありがとうございました!
0865デフォルトの名無しさん
2005/08/20(土) 06:16:510866デフォルトの名無しさん
2005/08/20(土) 08:39:370867デフォルトの名無しさん
2005/08/20(土) 10:24:12その突っ込みは「詳説正規表現」でも日本人でもない著者が入れている。
0868塾講師
2005/08/22(月) 03:53:30eat 食べる
speak 話す
watch 見る
・
・
・
といった感じの単語テキストを作ったのですが
この日本語だけを削除したいです。(中学生のテストのため)
秀丸の正規表現ではうまくいかなかったので、教えて下さい。
手間は惜しみません。
0869デフォルトの名無しさん
2005/08/22(月) 06:00:05その他(O)→動作環境(E)→正規表現が HMJRE.DLL に
なっているのを確認した上で、
検索(S): ^[a-z]+\f.+\n
置換(R): \0\n
「正規表現(R)」にチェック
0870デフォルトの名無しさん
2005/08/22(月) 06:03:310871デフォルトの名無しさん
2005/08/23(火) 00:27:09http://www.oreilly.co.jp/books/4873111307/toc.html
0872デフォルトの名無しさん
2005/08/23(火) 01:23:37正直、これで正規表現の実装は無理。
0873デフォルトの名無しさん
2005/08/23(火) 01:25:200874デフォルトの名無しさん
2005/08/23(火) 12:15:380875デフォルトの名無しさん
2005/08/23(火) 12:20:530876デフォルトの名無しさん
2005/08/23(火) 14:02:090877デフォルトの名無しさん
2005/08/26(金) 01:08:43qq#"400
<AAA>
<BBB>
"=~
m{
"(\d+)\s+([^"\n]*)\n
([^"]*)"
(?:\n
"(M\d+)\s+([^"\n]*)\n
([^"]*)"
)?
}smx;
print $2,"\n";
でなぜAAAが出力されるの?
0878デフォルトの名無しさん
2005/08/26(金) 01:09:24qq#"400
<AAA>
<BBB>
#=~
m{
"(\d+)\s+([^"\n]*)\n
([^"]*)"
(?:\n
"(M\d+)\s+([^"\n]*)\n
([^"]*)"
)?
}smx;
print $2,"\n";
でなぜAAAが出力されるの?
0879デフォルトの名無しさん
2005/08/26(金) 01:15:20qq#"400
<AAA>
<BBB>
#=~
m{
"(\d+)\s+([^"\n]*)\n
([^"]*)"
(?:\n
"(\d+)\s+([^"\n]*)\n
([^"]*)"
)?
}smx;
print $2,"\n";
でなぜAAAが出力されるの?
0880デフォルトの名無しさん
2005/08/26(金) 01:17:12qq#"400
<AAA>
<BBB>
"#=~
m{
"(\d+)\s+([^"\n]*)\n
([^"]*)"
(?:\n
"(\d+)\s+([^"\n]*)\n
([^"]*)"
)?
}smx;
print $2,"\n";
でなぜAAAが出力されるの?
0881デフォルトの名無しさん
2005/08/27(土) 13:26:060882デフォルトの名無しさん
2005/08/27(土) 13:55:060883デフォルトの名無しさん
2005/08/27(土) 14:18:370884デフォルトの名無しさん
2005/08/27(土) 22:45:00881 それがおいらの口癖さw
このスレの年齢層にマッチするか
0885デフォルトの名無しさん
2005/08/28(日) 01:37:310886デフォルトの名無しさん
2005/08/28(日) 11:53:43$str = "881 それがおいらの口癖さw";
$str =~ m/このスレの年齢層/;
perlではマッチしなかったよ
0887デフォルトの名無しさん
2005/08/29(月) 03:38:110888デフォルトの名無しさん
2005/08/29(月) 04:27:460889デフォルトの名無しさん
2005/08/29(月) 21:56:47普通にXYZにマッチさせて否定をとる。
perlで書くなら
$t !~ /XYZ/;
>>888 よりオートマトン短くなるから。
0890デフォルトの名無しさん
2005/08/29(月) 22:18:180891デフォルトの名無しさん
2005/08/30(火) 13:30:450892デフォルトの名無しさん
2005/08/30(火) 18:29:12単純な文字列を探すだけなら、正規表現を使う必要はない。
例)
・"XYZ"を含む
・"XYZ"を含まない
・先頭(or 末尾)が "XYZ" である
etc.
index()なり、strstr()なりの方が、遥かにコストが安い
(1/100 程度で済むこともある)。
perlの場合、オプティマイザがある程度は面倒を見てくれるけど
あまり期待しすぎないように。
0893デフォルトの名無しさん
2005/08/30(火) 21:22:08index2回どっちが速いの?
0894デフォルトの名無しさん
2005/08/30(火) 21:38:05そんなの自分で実際に試してみれば?
0895デフォルトの名無しさん
2005/08/30(火) 22:38:16どこに挟まれてるか、何文字目にあるかあらかじめ分かってる場合なら、
substr() を使った方が良い。
0896デフォルトの名無しさん
2005/08/30(火) 22:47:230897デフォルトの名無しさん
2005/08/30(火) 22:52:07Cなら正規表現の方が重いの、すぐ分かるだろうけど。
0898デフォルトの名無しさん
2005/08/30(火) 23:56:260899デフォルトの名無しさん
2005/08/31(水) 00:02:04コピペじゃなくて。
0900デフォルトの名無しさん
2005/08/31(水) 00:03:480901デフォルトの名無しさん
2005/08/31(水) 00:10:02以前書きました。RFC読んで。長いよ、すごく。
gTLD増えていくから、ちゃんと書いても、アップデートしなきゃいけない。
0902デフォルトの名無しさん
2005/08/31(水) 01:04:010903デフォルトの名無しさん
2005/08/31(水) 01:12:58それだけのスキルがあるかどうかの話
0904デフォルトの名無しさん
2005/08/31(水) 01:27:400905デフォルトの名無しさん
2005/08/31(水) 01:29:15これじゃだめか?>メアド
0906デフォルトの名無しさん
2005/08/31(水) 01:32:380907デフォルトの名無しさん
2005/08/31(水) 01:39:14それでダメかどうかは使われる状況によるのでなんとも言えないと思う。
もちろん、それで十分なケースも多いと思うけどね。
0908デフォルトの名無しさん
2005/08/31(水) 01:52:53[email protected]
こんなメアドはありえませんけど・・・
0909デフォルトの名無しさん
2005/08/31(水) 02:01:210910デフォルトの名無しさん
2005/08/31(水) 02:05:32およそ想定しうるすべてのメールアドレスに対応する正規
表現を記述しようと試みるのは愚の骨頂といえよう
0911デフォルトの名無しさん
2005/08/31(水) 02:06:55ttp://www.tt.rim.or.jp/~canada/comp/cgi/tech/mailaddrmatch/
0912デフォルトの名無しさん
2005/08/31(水) 02:34:33http://www.pc-view.net/Telephone/040113/page4.html
0913デフォルトの名無しさん
2005/08/31(水) 20:47:55うぜぇ
0914デフォルトの名無しさん
2005/08/31(水) 20:53:18http://www.din.or.jp/~ohzaki/perl.htm#Mail
http://search.cpan.org/~miyagawa/Email-Valid-Loose-0.04/
0915デフォルトの名無しさん
2005/09/01(木) 00:57:55>>910
09161/2
2005/09/01(木) 11:12:062chのdatをかちゅ〜しゃ形式のdatにするコンバータを作っています。
http://www.geocities.jp/mirrorhenkan/katu/
とりあえずjavascriptで作ったのですが、2点ほど解決出来ません。。
お力を頂ければと思います。
1.「>>1」「>1」「>>1」「>1」「>1−2」等、
レス番号に全角数字を使っているものにアンカータグを施す際に
URL部分だけ半角文字にしたいのですが、一文だけの正規表現では
何か方法がありますでしょうか。
該当部分です。
line[3] = line[3].replace(/([^>\;]|^)(>|>>|>|>>|≫)([0-9]+)([^<-]|$)/g,"$1"+sp1+"$3"+sp2+"$3"+sp3+"$2$3<\/a>$4");
line[3] = line[3].replace(/([^>\;]|^)(>|>>|>|>>|≫)([0-9]+)(-|\−|\ー)([0-9]+)([^<]|$)/g,"$1"+sp1+"$3"+sp2+"$5"+sp3+"$2$3$4$5<\/a>$6");
上は$3に・下は$3と$5に全角数字が入るので、置換する際に
URL部分(上は"sp1+"$3"+sp2・下は"sp1+"$3"+sp2+"$5"です)の全角数字のみ
半角数字に変換したいです。
(evalを使ってみたのですが、どうもうまくいかないです)
一文ではなくてもいいので、何か解決方法がありますでしょうか。
09171/2
2005/09/01(木) 11:19:26「&gt;556-557」や「>556-557」等、三桁数字にレスアンカーを施す際に
変換結果が「<a href=●●>&gt;55</a>6-557」となってしまいます。
望む結果は「<a href=●●>&gt;556-557</a>」なのですが・・。
どこを直せば正しくなるでしょうか。
同じく該当部分です。
line[3] = line[3].replace(/([^>\;]|^)(>|>>|>|>>|≫)(\d+)([^<-]|$)/g,"$1"+sp1+"$3"+sp2+"$3"+sp3+"$2$3<\/a>$4");
line[3] = line[3].replace(/([^>\;]|^)(>|>>|>|>>|≫)(\d+)(-)(\d+)([^<]|$)/g,"$1"+sp1+"$3"+sp2+"$5"+sp3+"$2$3$4$5<\/a>$6");
以上2点なのですが、もし宜しければお願い致します。。
09182/2
2005/09/01(木) 11:20:490919デフォルトの名無しさん
2005/09/01(木) 11:27:37_
/〜ヽ
(。・-・)
゚し-J゚
0920デフォルトの名無しさん
2005/09/13(火) 20:50:07条件に一致したファイル名だけを取得する方法ありませんか?
0921デフォルトの名無しさん
2005/09/13(火) 22:21:37で後方参照で取得できると思うけど。 Perl なら $1 とか。
で、処理系 (言語とか) を書かないのには何か宗教的な理由でもあるのかね?
0922デフォルトの名無しさん
2005/09/13(火) 22:22:07自明に、正規表現にマッチしたファイル名を表示すればいいんじゃないの?
何を聞きたいのかわからんなあ。
ちなみに>>920の正規表現はちょっと独特だぞ。
[|]とか。前半を()でくくる意味もないみたいだし。
0923デフォルトの名無しさん
2005/09/13(火) 22:57:54でできるのかな?'<'とかいる?
0924デフォルトの名無しさん
2005/09/13(火) 23:13:060925デフォルトの名無しさん
2005/09/13(火) 23:18:12ls | grep ...
とかする。
でもそもそもWinなのか?
っていうふうにいつまでも周りの藪をつついてまわって本題にたどりつかん。
まー2chじゃよくあることだがな。
0926デフォルトの名無しさん
2005/09/13(火) 23:57:470927デフォルトの名無しさん
2005/09/14(水) 00:00:270928デフォルトの名無しさん
2005/09/14(水) 00:31:41http://pc8.2ch.net/test/read.cgi/prog/1126622479/
0929デフォルトの名無しさん
2005/09/14(水) 00:40:04もっと理論よりの話がしたかったんじゃないかな
たぶん
0930デフォルトの名無しさん
2005/09/29(木) 01:53:47xlfjldsflkj
xldfijXYZsdfj
sdjdsj
sdivfdfsoi
sdXYZlgjjldsf
sdogjdpofgijds
上記の文章から「XYZを含まない行」を検索するには
どのような正規表現を書けばよいですか?
0931デフォルトの名無しさん
2005/09/29(木) 02:29:560932デフォルトの名無しさん
2005/09/29(木) 10:28:46でろでろに舐める正規表現使うな、いやらしい、けしからん、
セクハラだ
0933デフォルトの名無しさん
2005/09/29(木) 23:03:36テキストエディタで、特定の文字列を
含まない行を置換で消したい場面が往々にしてあるのよ
0934デフォルトの名無しさん
2005/09/29(木) 23:18:15あるパターンを*含まない*行を削除する機能は大抵のエディタにあるだろ。
少なくともviにもEmacsにもあるぞ。
ついでにいうと、大抵のエディタには、今見てるファイルの内容を外部コマンドに
渡して(例えばgrep)その出力結果で置換する機能もあるだろ。viやEmacsならある。
上のどちらかができないエディタって具体的になによ?
てか、予想通り正規表現には関係ない話だってわかったから俺はもういいや…
0935デフォルトの名無しさん
2005/09/29(木) 23:32:19だれもそんなことしない
0936デフォルトの名無しさん
2005/09/30(金) 01:26:130937デフォルトの名無しさん
2005/09/30(金) 15:23:52それならそれで、使っているエディタの種類も書かずに >>930 みたいな質問をするというのはどういう了見なのか?
0938デフォルトの名無しさん
2005/10/01(土) 04:20:36置換前:[^.*XYZ.*\n]
置換後:[]
0939デフォルトの名無しさん
2005/10/05(水) 21:53:22https://sourceforge.jp/projects/frogger/
0940デフォルトの名無しさん
2005/10/19(水) 11:10:58C#のプログラムの分析をしたくてソースコードの簡易なパーサーを作ろうとしているのですが、こういうのに正規表現は向くんでしょうか?
調査中で、正規表現はずぶの素人なので指揮者の方お願いします。
0941デフォルトの名無しさん
2005/10/19(水) 12:23:15分析の内容次第ではきちんと構文解析する必要ないかもしれないが、一般的には
たぶん向かない。というかその手のことをやろうとしてるのに自分で判断つけられない
ようでは基礎がなってないと思うので、せめてコンパイラの本の構文解析のあたりの
ところまでは読んどけ。
0942デフォルトの名無しさん
2005/10/19(水) 13:21:00yacc&lexも正規表現使ってますが何か?
0943デフォルトの名無しさん
2005/10/19(水) 13:53:14つまりなんの役にも立たない
役に立てようとしたのがこの様
0944デフォルトの名無しさん
2005/10/19(水) 14:42:20既存のモノを使うという手も。スレ違いだけど。
LangScan: ソースコード解析ライブラリ
ttp://gonzui.sourceforge.net/langscan/
0945デフォルトの名無しさん
2005/10/23(日) 02:35:240946デフォルトの名無しさん
2005/10/23(日) 03:09:470947デフォルトの名無しさん
2005/10/28(金) 01:45:270948デフォルトの名無しさん
2005/10/28(金) 02:48:390949デフォルトの名無しさん
2005/10/28(金) 03:53:530950デフォルトの名無しさん
2005/10/31(月) 13:01:26[10/20]yyy[Y下].doc
[8/12]mmm[M字山].doc
このようなファイルがいくつもあり、作者名([A山]、[Y下]、[M字山]の部分)だけを指定する方法が分からないのですが、どのように指定すれば良いのでしょうか?
0951デフォルトの名無しさん
2005/10/31(月) 13:06:460952デフォルトの名無しさん
2005/10/31(月) 13:21:12while(<>){
$_=~s/^[.*([.*]).doc/
print $1;
/xeg
}
]は全角か?半角なら\を入れる必要がある
0953デフォルトの名無しさん
2005/11/03(木) 23:09:590954デフォルトの名無しさん
2005/11/03(木) 23:12:310955デフォルトの名無しさん
2005/11/03(木) 23:14:25http://pc8.2ch.net/test/read.cgi/tech/1131027222/
ちょっと感じ変換を間違えましたがご愛嬌でゆるいs手くdさあい。
0956デフォルトの名無しさん
2005/11/03(木) 23:24:31これは許されないだろ
0957デフォルトの名無しさん
2005/11/03(木) 23:24:350958デフォルトの名無しさん
2005/11/03(木) 23:28:270959デフォルトの名無しさん
2005/11/03(木) 23:32:37あまりにもアレなのでスレを立てる練習に使わせてもらいました。
正規表現 part2
http://pc8.2ch.net/test/read.cgi/tech/1131028296/
0960デフォルトの名無しさん
2005/11/04(金) 03:10:570961デフォルトの名無しさん
2005/11/04(金) 12:18:31馬鹿な早漏君だ
0962デフォルトの名無しさん
2005/11/04(金) 13:45:120963デフォルトの名無しさん
2005/11/04(金) 18:25:51これ最強
0964デフォルトの名無しさん
2005/11/12(土) 14:59:320965デフォルトの名無しさん
2005/11/12(土) 15:02:01高いけど。
0966デフォルトの名無しさん
2005/11/12(土) 16:26:06つくっても何でその表現だと引っかからないのかがわからんです・・・
なんかテストツール見たいのものってありますか?
0967デフォルトの名無しさん
2005/11/12(土) 17:00:030968デフォルトの名無しさん
2005/11/12(土) 18:04:48いま作ってる正規表現のどこがおかしくて意図した動作をしないのかを検証するツール。
ひっかからないとしてどこで引っかからなくなってるのかがわかりやすいものがあればと。
0969デフォルトの名無しさん
2005/11/12(土) 22:30:360970デフォルトの名無しさん
2005/11/12(土) 23:17:46ttp://www.ast-j.com/software/regexchk.htm
とかは?
0971デフォルトの名無しさん
2005/11/12(土) 23:34:31適当にカッコ挿入してキャプチャーしてどこまでマッチしてるか
表示させたりみたいな地道なことをやっている。
0972デフォルトの名無しさん
2005/11/13(日) 07:54:04>>971 やはりそんな感じですか・・・みんなもはまってるんですね。該当部分だけ引っ張り出すと正常に動くんだけど中に入れると動かない・・・orz
なんか間違ってるんだろうけど、どこかわかりません。
とりあえずちょっとツール作ってみました。括弧の対応と引っかかる文字列あれば抜き出します。
対象文字列と正規表現入れて成功すると引っかかったのをグループごとに表示します。
右側には括弧の対応も示されます。
http://www.uploda.org/file/uporg236598.zip.html
暇な人ツールに最初から入ってる正規表現のどこがおかしいのか教えてください。
対象文字列に"2005/10/21 12:45:562005/10/21 12:45:56"といれると後ろの日付部分が認識されるんだけど"5d-2005/10/21 12:45:56"とすると認識されないです・・・
0973972
2005/11/14(月) 00:05:490974デフォルトの名無しさん
2005/11/22(火) 00:50:32行頭がhttpで始まる行を削除し\nに置換したいのですが
正規表現の書き方を教えてもらえませんか
0975デフォルトの名無しさん
2005/11/22(火) 01:01:30^http.* を 空の文字列に置き換え
0976974
2005/11/22(火) 01:02:42ありがとう
置換前 http..*\n
置換後 \n
でもデキマスタ
0977デフォルトの名無しさん
2005/11/22(火) 01:03:57それじゃ行頭以外にもマッチするじゃん
0979デフォルトの名無しさん
2005/11/23(水) 12:48:08これを正規表現に直すと、どうなるか教えて下さい
0980デフォルトの名無しさん
2005/11/23(水) 12:51:220981デフォルトの名無しさん
2005/11/23(水) 12:56:26何のためにそれを正規表現に直したいのか知らないが
恐らく、どこかの掲示板なりのアクセス禁処理のためだと考えて答えると
ntaich[0-9]+.aich.nt.adsl.ppp.infoweb.ne.jp
こうだと思われる
0982デフォルトの名無しさん
2005/11/23(水) 14:10:290983デフォルトの名無しさん
2005/11/23(水) 14:40:16http://pc8.2ch.net/test/read.cgi/tech/1131028296/l50
0984デフォルトの名無しさん
2005/11/23(水) 23:05:41http://pc8.2ch.net/test/read.cgi/tech/1131028296/l50
0985デフォルトの名無しさん
2005/11/24(木) 12:51:020986デフォルトの名無しさん
2005/11/25(金) 01:55:530987デフォルトの名無しさん
2005/11/25(金) 12:29:300988デフォルトの名無しさん
2005/11/25(金) 17:20:310989デフォルトの名無しさん
2005/11/26(土) 05:11:260990デフォルトの名無しさん
2005/11/27(日) 01:52:070991デフォルトの名無しさん
2005/11/27(日) 01:53:280992デフォルトの名無しさん
2005/11/27(日) 01:54:500993デフォルトの名無しさん
2005/11/27(日) 01:55:530994デフォルトの名無しさん
2005/11/27(日) 01:56:580995デフォルトの名無しさん
2005/11/27(日) 02:00:560996デフォルトの名無しさん
2005/11/27(日) 02:01:120997デフォルトの名無しさん
2005/11/27(日) 02:02:280998デフォルトの名無しさん
2005/11/27(日) 02:03:07http://pc8.2ch.net/test/read.cgi/tech/1131028296/
0999デフォルトの名無しさん
2005/11/27(日) 02:04:591000デフォルトの名無しさん
2005/11/27(日) 02:12:5610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。