- 1 名前:正規表現 mailto:正規表現 [02/12/06 18:09.net]
- 正規表現
- 229 名前:189=207 mailto:sage [03/05/12 21:13.net]
- >>225
ありがとん。「。」毎に改行入れようとして、s/(.+?。)//;やってみたが、こ れすらできんかった。結局、perl5.6以上はjperlないから日本語処理を中心に してる場合は、使えないってことかなぁ。もち、~ohzakiさんとこに書いてあ るような注意をしたり、半角文字で置き換えたりすれば使えるげど、面どい。
- 230 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/12 23:01.net]
- >>226
5.8にしてEncodeつかう。
- 231 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/13 02:04.net]
- >>226
> 結局、perl5.6以上はjperlないから日本語処理を中心にしてる場合は、 > 使えないってことかなぁ。 違うっしょ。
- 232 名前:189=207 mailto:sage [03/05/13 07:23.net]
- >>227
やってみまつ。 >>228 じゃ、jperlでできるs/.+?[。!?]/$1\n/g;あたり、どやってやる? めんどいでしょ。
- 233 名前:189=207 mailto:sage [03/05/13 07:24.net]
- あら、s/.+?[。!?]/$&\n/g;だった。
- 234 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/13 11:05.net]
- >>229
あぁ、そういう話か。それはその通りですね。 でも、それは 5.8 の Encode とやらを使うと解決するってことなのでは。 っつーか、漏れは 5.8 動かせる環境無いので確認しようがないんでつが、 誰一人として Encode が一体何者なのか説明しようとしないのは何故?
- 235 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/13 11:39.net]
- >>231
use utf-8; use Encode; my $ENC = 'euc-jp'; # or 'cp932' binmode STDOUT, ":encoding($ENC)"; binmode STDIN, ":encoding($ENC)"; 普通に標準入出力にアクセスすればOK。スクリプト内に日本語書くときはUTF-8で。 っていうかperldoc嫁
- 236 名前:名無しさん@お腹いっぱい。 [03/05/14 01:43.net]
- >>232
perl 5.6 では不可能ということか?
- 237 名前:189=207 mailto:sage [03/05/14 08:50.net]
- >>232
まだ、5.8を試してないんですが、>>232って、euc-jpの端末でeuc-jpのスクリ プト書いて、perlにutf-8で処理させるってことですね。utfサポートは、5.6 からあるので、mule-ucs+bdfフォントで、emacs上でprocess-coding-system (inputもoutputも)もutf-8にして、やってみたけどだめですた。 私が問題にしているのは、[](文字クラス)や+?、*?(最短一致)がマルチバ イトに対応しているかどうかということなのですが・・・
- 238 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/14 10:15.net]
- >>234 5.6時代から既に対応している
- 239 名前:189=207 mailto:sage [03/05/14 10:57.net]
- >>235
[](文字クラス)をテストしてみたけど、だめです。 utf-8で以下のスクリプト実行して見れ。jperlではOKですが・・・ --------- while(<DATA>) { chomp; while (s/.+?[。!?]//) { print "$&\n"; } print; } __DATA__ utf-8で処理させて下さいね。5.6でね。utfサポートは、 5.6からあるけど、このスクリプトだめぽ!>>235は、何が 5.6時代から既に対応しているって言ってんの?変だよ。
- 240 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/14 11:10.net]
- >>236 use utf8; してる?
- 241 名前:189=207 mailto:sage [03/05/14 11:24.net]
- >>237
してなかったっす。 みなさん、ごめんなさ。
- 242 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/14 17:10.net]
- perl 質問スレにするなよ。
- 243 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/15 19:55.net]
- というわけで、これにて終了。
正規表現スレはここまでです。 あれ?
- 244 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/16 01:42.net]
- 単語に「マッチしない」のは
どうやれば? ^\<word\> じゃないし。
- 245 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/16 03:07.net]
- >>241
そりを正規表現(だけ)で実現するのは難しいのでは? 普通は、grep なら -v とか、スクリプト言語なら !~ /word/ とかするんじゃないかと。
- 246 名前:189=207 mailto:sage [03/05/16 08:24.net]
- >>241
perlの拡張正規表現を使えば出来るよ。 /^(?!.*word)/
- 247 名前:あぼーん mailto:あぼーん [あぼーん.net]
- あぼーん
- 248 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/24 22:45.net]
- オ来リーの者じゃありませんが・・・
『詳説 正規表現 第2版』 Jeffrey E. F. Friedl 著 田和 勝 訳 2003年5月発行 -- 5月27日発売 464ページ 本体価格5,400円 ISBN4-87311-130-7 テキストやデータの処理に欠かせない強力なツールとして瞬く間 に普及した「正規表現」。現在ではPerl、Java、VB.NETやC#など 数多くの言語やツールに標準で装備されています。その幅広い可 用性、柔軟性と比類ない強力さにもかかわらず、実際に正規表現 を使いこなすことは難しいです。本書は正規表現の概念を詳細に 掘り下げる一方で、数多くの言語やツールの実例を示しながら、 正規表現についての理解を深める解説書です。第2版では、豊富 な実例を使い、詳しくていねいに解説するスタイルはそのままに、 Perl5.8の新機能に加え、Javaと.NETの正規表現にもそれぞれ独 立した章を設けるなど、全編にわたって大幅に加筆がなされまし た。正規表現の本質を読み解く決定版です。とくに正規表現を使 いこなしていると自負している人にほど読んでほしい本です。
- 249 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 00:29.net]
- あれ?今日買ってきたんだけど27日発売だったのね…
- 250 名前:名無しさん@お腹いっぱい。 mailto:age [03/05/25 00:43.net]
- >>246
つーことで発売記念age
- 251 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 03:23.net]
- 素数にマッチする正規表現募集。
- 252 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 03:38.net]
- >>245
第1版と比較してのレビューきぼんぬ
- 253 名前:名無しさん@お腹いっぱい。 mailto:半額きぼんぬ sage [03/05/25 03:44.net]
- >>249
> 2003年5月発行 -- 5月27日発売 とあるからまだ無理なのでは
- 254 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 03:49.net]
- >>248
正規表現だけでなく、なんかしら言語使ってやればよい。
- 255 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 03:56.net]
- >>248
何故敢えて茨の道を行くのか?
- 256 名前:名無しさん@お腹いっぱい。 [03/05/25 05:07.net]
- >>245
これの第1版買ったのですが、いまいち難しかったです。 もっと易しい本ってないですか?
- 257 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 05:35.net]
- >>253
Ruby の初・中級者なら、「Ruby Magic―Rubyで極める正規表現」はお勧め。
- 258 名前:245 mailto:sage [03/05/25 10:21.net]
- >>249
第1版を持ってないので比較は出来ないっす。 # 買おうと思ったら第2版が出ることを知ったので待ったのだ。 ここに特徴や目次が紹介されているので見てもらうとして ttp://www.oreilly.co.jp/BOOK/regex2/ ttp://www.oreilly.co.jp/BOOK/regex2/contents.htm まえがきから第1版との違いを判断すると - Unicodeのちょっとした解説 - Perl5.003からPerl5.8対応に - Java1.4のjava.util.regexと、その他6つの正規表現パッケージの比較 - .NET framework正規表現の特徴と問題点、M$のドキュメント(貧弱らしい)の補足 のように言語サポートが新しくなった/増えたって感じ。 最初はHTMLのサンプルを少々追加する程度の予定(3ヶ月の見込み)だったみたいだけど、 結局は2年の歳月をかけて全面的に加筆修正することになったそうだ。 難易度は第1版と変わらないのではないかな? # 読み易くなってるのかもしれないけど。。 >>253の期待には応えられないと思う。 > とくに正規表現を使いこなしていると自負している人にほど読んでほしい本です。 という宣伝文句があるくらいだしね。 >>250 いや、24日に買えたのよ。
- 259 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/27 11:05.net]
- 今日発売か。
昼休みに買ってくるか。
- 260 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/27 21:10.net]
- >>256さん、どうですた?
- 261 名前:249 mailto:sage [03/05/27 21:28.net]
- >>255 さんのと、今日立ち読みした感じで、第2版も購入することにしますた。
そういえば、翻訳者 (監訳者) が変わってたんですね。
- 262 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/27 21:29.net]
- sed のタグ付き正規表現についてちょっと教えれ。たとえば、
{________I'm_dreaming_of_a_White_Christmas_} {_Just_like_the_ones_I_used_to_know__} {____Where_the_tree_tops_glisten_} の前後の余計な _ のトリミングをしようと思って sed 's/{\(_*\)\(.*\)\(_*\)}/{\2}/g' とやっても意図した結果にならない。\2 をうまくマッチさせる方法は? まぁこの例なら簡単に逃げられる - たとえば sed 's/{_*/{/;s/_*}/}/' - わけだが、apache の log とかの簡単なパース(並び替えとかそんな程度)を タグ付き正規表現でさくっと処理できれば楽でうれしい。よろしく。
- 263 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/27 21:38.net]
- 二個目の*がlongest matchしようとして
3個目の*にmatchさせたいであろう_まで持っていってしまうのが原因。 sed -e 's/{_*\(.*[^_]\)_*}/\1/'
- 264 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/28 00:59.net]
- '<,'>s@^@//@
- 265 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/28 01:03.net]
- 最少マッチって perl とか ruby にしかない?
sed, grep 等の伝統的 tool にはないの?
- 266 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/28 01:07.net]
- >>262
ないよ
- 267 名前:名無しさん@お腹いっぱい。 [03/05/28 14:45.net]
- >>262
grepに最小一致の機能があったとして それの魅力はイッタイ何なのだろうか?
- 268 名前:あぼーん mailto:あぼーん [あぼーん.net]
- あぼーん
- 269 名前:262 mailto:sage [03/05/28 20:42.net]
- 確かに sed では使っても grep では使わないかも。
いや、でも後方参照する時に必要なこともありえますね。
- 270 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/29 10:14.net]
- >>257
昼休みにいきつけの書店にいったが売ってなかったんで。 帰りに別の書店で買った。 でもまだ読んでない… 通勤時間に読むっつーてもあれを毎日持ち歩くのは 重たいしなぁ。
- 271 名前:名無しさん@お腹いっぱい。 [03/05/30 21:59.net]
- 文字列中、丸括弧(全角、半角問わず)で閉じられた部分を取り出す表現を考えているけど、うまくマッチしてくれない。
(丸括弧の中に丸括弧は含まない。Perlの正規表現を使用) $string = '(22(1)'; if($string =~ /[((]([^()()]*)[))]/){ print $1; } else{ print "No match.."; } この場合は"1"がマッチするのを期待しているのだけど、なぜか"22"の部分がマッチした。 OS(UNIX/WinXP)、Perlのバージョン(5.0/5.8)の異なる環境で同じことを確認したけど、結果は変わらず。 さらに、文字コード(Shift-JIS/EUC)の違いでも、結果は変わらなかった。 "1"をマッチさせる別の表現はないですかね? # 全角"("の中にどうも半角")"の文字が隠れてるのかなぁ?(あくまでも推測)
- 272 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/30 22:42.net]
- >>268
おめな、2byte文字と1byte文字が同じに扱われると思ってるらしいな。たぶん、 文系のドキュソだな。しかも、すぐ上で2byte文字コードの話出てたの見てね えな。こいう、初心者質問は、webprogのPerl初心者スレ逝け。
- 273 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/05 14:26.net]
- >>268
Perl5.8.0 + UTF8 でやったら 1 になったよ。
- 274 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/07 12:10.net]
- [ ] のなかに '-' と ']' の両方を入れたい場合はどうすればいいのですか?
- 275 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/07 12:20.net]
- >>271
何で?
- 276 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/07 12:29.net]
- >>271
[]-]
- 277 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/17 23:25.net]
- >>271
!.-[
- 278 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/03 21:13.net]
- 保守
- 279 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/08 11:49.net]
- regexp ml盛り上がってますね。読んでて楽しい。
- 280 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/08 14:02.net]
- このスレはいつからまともな人たちをヲチするようになったのですか?
- 281 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/12 21:26.net]
- すいません、テキストファイルの中の .bananaなどの単語(行頭ではなく)の先頭が
ドットがあるものだけをgrepで抜き出したいのですが、jp.appleのような単語までひっかかって しまい上手く絞り込めません。 アドバイスをお願いします!!
- 282 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/12 21:54.net]
- >>278
\b?\.\w+? で、どうじゃろ?
- 283 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/12 22:44.net]
- >>279
すいません、なんか上手くいかないです。 ls -laでディレクトリ内の全ファイルを表示して、grepで隠しファイルだけを抽出したかったのですが。
- 284 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/12 23:34.net]
- ls -la | grep ' \.'
ではあかんの?
- 285 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/12 23:57.net]
- >>281
行のどこかに"."があれるとヒットしてしまうんです
- 286 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 00:28.net]
- ls -la | grep '^\.'
こういうこと?
- 287 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 00:28.net]
- >>282
とはいえ、"."って、ファイル名にしかでてこないよね? >>281 をよーくみる。
- 288 名前:283 mailto:sage [03/07/13 00:30.net]
- 間違えた。
ls -1a | grep '^\.' これか ls -la | grep ' \.' これだな。下は余計なものを拾う可能性もあるが。
- 289 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 00:31.net]
- ls -d .*
なんてね。
- 290 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 00:32.net]
- あ、正規表現スレだった。すまん。
- 291 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 02:00.net]
- ヤハリココハオモッテタトオリバカバッカリダッタナ(プ
- 292 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 02:57.net]
- ls -la | awk '$9 ~ /^\./{print $0}' はどうよ。
- 293 名前:名無しさん@お腹いっぱい。 [03/07/13 11:30.net]
- >>280 ふつーそういうときは ls つかわず findつかえ。
find ./ -type f -name "\.*" -print
- 294 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/13 14:36.net]
- (())
- 295 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 11:38.net]
- >>290 ふつーそういうときは >> つかわず >> つかえ。
- 296 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 19:04.net]
- backreferenceを前方参照と訳したのはなぜですか?
- 297 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 21:19.net]
- 後方参照としている訳もあるよ。
まぁ、現在の位置よりも前を参照するという意味では 日本語的には前方参照であってると思う。 ようするに「今いる位置より戻って参照」って意味になるんだから。 んでも、意味を考えて訳すなら「戻って参照」とか、どう?
- 298 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 21:32.net]
- >>294
ちょっと前にCスレで話題になったんだけど、Cで「前方参照」といった場合の前方って、 ファイルの終端方向を指す。「ひどい訳語だ」ってことで話は終わったんだけど、 正規表現でも混乱が見られるしなんかいい言葉ないもんかねえ。 日本語では時間を表す文脈で「前」にまるで正反対の意味があるからよくないのだと思う。 「以前」だと過去だし「前進」だと未来だし。 あとこれはすれ違いか? そうだよね。すまん。
- 299 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 21:41.net]
- >>279 >>281 >>283 >>284 >>285 >>286 >>287 >>289 >>290
みなさま、ありがとうございます。 シングルクォーテーションに空白が使えたり、 アッパーチルダとハット(キャレット?)の区別を知ったりと、 正規表現の難しさを知りました。 今、「テキストデータ料理学」っていう古い本を読んでいるのですが、 オライリーの正規表現本は買ったほうがいいですか? (もう2〜3週間前にオライリーのサイトでカタログを注文したのに、 まだ来ない…)
- 300 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 22:23.net]
- おれは初版も新しいのも持ってるけど、自分の知識に自信がないうちは
お薦めしない。もちろんあったらあったで便利だけど。 やっぱり、「俺、正規表現バリバリだぜーYAH」状態で買って読んで 目からうろこ落ちまくり感を堪能するのがいいんではないかと。
- 301 名前:名無しさん@お腹いっぱい。 [03/07/14 23:31.net]
- >294
するってえと、正規表現的には日本語で前方参照あるいは後方参照と書いてあったら どっちもbackreferenceと思えってわけだぁね。 >295 計算機分野だと「前方」という言葉はforwardの訳語というのがあたりめえだと思ってたから、 正規表現関係だと、「前方参照」がbackreferenceのことだっていうのがわかんなくて 難儀したってわけよ。
- 302 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 23:33.net]
- >>297
>>296は学ぶ意欲を持っているから、今のうちに買っておいて損はないと思う。 むしろ薦める。 オイラリーはハズレが少ないからな。
- 303 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/14 23:35.net]
- >>298
俺はperlから入ったから後方参照が当たり前かと思ってた。 他言語使うようになってから吃驚したってわけよ。
- 304 名前:298 mailto:sage [03/07/14 23:43.net]
- perl5の日本語マニュアルで、「前方参照」を "lookahead assertion"の訳語として
使っているやつがあった。 (?=regexp) 長さの無い、前方参照位置指定子。 (?!regexp) 長さの無い、前方参照否定位置指定子。 英語だと (?=pattern) A zero-width positive lookahead assertion. (?!pattern) A zero-width negative lookahead assertion. わけわかんねぇな(w
- 305 名前:298 mailto:sage [03/07/14 23:48.net]
- ありゃりゃ?
(?<=pattern) A zero-width positive lookbehind assertion. (?<!pattern) A zero-width negative lookbehind assertion. "lookbehind assertion" の訳語って何だ?
- 306 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/15 00:32.net]
- 「俺の背後に立つな」
デューク東郷の格言だろ。
- 307 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/15 00:35.net]
- lookahead 見越し
lookbehind 見返り
- 308 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/15 01:01.net]
- 前後不覚だな。
- 309 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/15 03:12.net]
- >>296
>オライリーの正規表現本は買ったほうがいいですか? 持ってなくても覚えられるし、 エディタのサーチとか grep とかで実験しながら 感覚的に慣れるのも悪くないんじゃない? ただし emacs で覚え始めるのはすすめない。 backslash で混乱する。
- 310 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/15 07:21.net]
- >>297
>>299 >>306 ちょっと大きな本屋に行って立ち読みしてみます。 ありがとうございました〜
- 311 名前:あぼーん mailto:あぼーん [あぼーん.net]
- あぼーん
- 312 名前:名無しさん@お腹いっぱい。 mailto:age [03/07/17 13:35.net]
- >>308
二度と目を覚ますな。
- 313 名前:あぼーん mailto:あぼーん [あぼーん.net]
- あぼーん
- 314 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/20 21:36.net]
- さげ保守
- 315 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/27 22:01.net]
- OOはもうすぐ1.1出るけど、MSWORDよりセキュリティ大丈夫かな?
pc2.2ch.net/test/read.cgi/bsoft/1055292975/392
- 316 名前:あぼーん mailto:あぼーん [あぼーん.net]
- あぼーん
- 317 名前:高校生 [03/08/02 17:12.net]
- boo
baa baz っていうテキストが例だとして、sedを用いて、 booまたはbaz、っていう正規表現はどうなるの? rubyやperlならパイプ記号で条件和の表現が出るけど、 同じように書いてもsedに誤解されてしまう。
- 318 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/02 17:52.net]
- >>314 ん? \|使えば良いのでは
- 319 名前:高校生 mailto:sage [03/08/02 18:06.net]
- sed 's/boo\|baa/hoge/g' ./hage.txt
とかだとやっぱりだめなんすよね。 「boo」とかの単語の括り方がよくわからんのです。
- 320 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/02 20:53.net]
- GNU sed 4.0.7版 ではそれでもできてるけどな。
sed 's/\(boo\|baa\)/hoge/g' これでどう?
- 321 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/02 22:07.net]
- >>317
gsedならできるがsedは食ってくれない。
- 322 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/03 01:09.net]
- 単一の正規表現じゃなきゃいかんの?
sedと決まってるなら sed -e 's/boo/hoge/g' -e 's/baa/hoge/g' でいいんちゃう? 置換後の文字列と置換前の文字列の片方とで重なりがある場合 どうするかひとしきりモメたりする ↓↓↓ のがお決まりだな。
- 323 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/03 09:52.net]
- 単一の正規表現でないと記述が冗長で見た目がキモイ、
っていうのはあると思うよ。 おいらはインストール直後のFreeBSDの環境構築をスクリプトに任せたくて、 結局シェルスクリプトにawkな記述を書いて解決した。 カーネルの再構築にしても、/etc/下の記述にしても、要はテキストの置換なわけで。 本当はrubyがFreeBSDの/usr/bin下にあるようなご時世だったら 楽ができるんだけど、そこら辺は個人的な勉強不足だなぁ。
- 324 名前:名無しさん@お腹いっぱい。 [03/08/13 19:13.net]
- {a,b}上の言語Lが
『aaで開始し、かつ、bbを部分列として含む』という条件を満たす語からなるとき Lを表す正規表現ってどうなるの? L=aa(a*b*+bb)* ?
- 325 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 20:45.net]
- L=aa(a+b)*bb(a+b)*
- 326 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 22:05.net]
- >>321
*+ ???
- 327 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 23:05.net]
- >323
'+'より'|'のほうが普通かな。 L=aa(a|b)*bb(a|b)* 本来的には連接、選択、閉包が表現できればいい。
- 328 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 23:08.net]
- L ::= aA
A ::= aB B ::= aB | bC C ::= aB | bD D ::= ε | aD | bD
- 329 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 23:34.net]
- .*
何にでもマッチする最強の正規表現です!
|

|