[過去ログ]
Regular Expression(正規表現) Part16 (1002レス)
Regular Expression(正規表現) Part16 http://mevius.5ch.net/test/read.cgi/tech/1635936601/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
951: デフォルトの名無しさん [sage] 2023/11/05(日) 15:52:16.56 ID:q8heJbgz 2がエラーになるのは誤りだ、異論ある? いつもの超優秀な人(AI?)の意見を聞かせて欲しい http://mevius.5ch.net/test/read.cgi/tech/1635936601/951
952: デフォルトの名無しさん [sage] 2023/11/06(月) 06:59:13.82 ID:j6L5l5bH 異論はないってことで良いかな、おそらく既知の問題(仕様)だと思われる この問題に長年気付かないとは考えられないから 本来動くべきサンプルを貼って>>949の件は終了とする x2("(?:\\k<n>b|(?<n>a))+", "aab", 0, 3); // ERROR: undefined name <n> reference x2("(?:(?<n>a)|\\k<n>b)+", "aab", 0, 2); // OK x2("(?:\\1b|(a))+", "aab", 0, 3); // OK x2(
"(?:(a)|\\1b)+", "aab", 0, 2); // OK http://mevius.5ch.net/test/read.cgi/tech/1635936601/952
953: デフォルトの名無しさん [sage] 2023/11/06(月) 19:00:47.89 ID:j6L5l5bH 回避策 x2("(?<n>a){0}(?:\\k<n>b|\\g<n>)+", "aab", 0, 3); // OK http://mevius.5ch.net/test/read.cgi/tech/1635936601/953
954: デフォルトの名無しさん [sage] 2023/11/15(水) 17:50:43.57 ID:Karf8A+O 文字列の頭に部分一致するパターンなんですが・・・ 「abcdefg」にマッチするパターンですが、 /^a(?:b(?:c(?:d(?:e(?:f(?:g)?)?)?)?)?)?/ と書くしかないですか? 文字列が長大な場合、ちょっと無理なんですが・・・ (文字はアルファベットとは限らず) WindowsのJScriptですが。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/954
955: デフォルトの名無しさん [sage] 2023/11/15(水) 18:12:27.94 ID:ctqB5947 /^abcdefg/ http://mevius.5ch.net/test/read.cgi/tech/1635936601/955
956: デフォルトの名無しさん [sage] 2023/11/15(水) 18:41:54.66 ID:/mJ+eeiZ 無いんじゃないか? ^(?:abcdefg|abcdef|abcde|abcde|abcd|abc|ab|a) とどっちがマシかな http://mevius.5ch.net/test/read.cgi/tech/1635936601/956
957: デフォルトの名無しさん [sage] 2023/11/16(木) 14:47:23.08 ID:7i/8qZTv /^m/ にマッチして map だけマッチして欲しくない /^m[^a][^p]/ これだと man にマッチしてくれない どう書けばいいですか http://mevius.5ch.net/test/read.cgi/tech/1635936601/957
958: デフォルトの名無しさん [sage] 2023/11/16(木) 14:53:22.83 ID:4tHpE5Jq >>957 否定先読みが使えるなら^m(?!ap)かな? http://mevius.5ch.net/test/read.cgi/tech/1635936601/958
959: デフォルトの名無しさん [sage] 2023/11/16(木) 15:59:06.48 ID:7i/8qZTv ありがとう http://mevius.5ch.net/test/read.cgi/tech/1635936601/959
960: デフォルトの名無しさん [sage] 2023/11/17(金) 04:25:56.84 ID:gwXFy+9L 特定の文字列を検出したい場合、\Q~\Eの~に、その特定の文字列を入れておけば、どんな文字が来ても大丈夫でしょうか? http://mevius.5ch.net/test/read.cgi/tech/1635936601/960
961: デフォルトの名無しさん [sage] 2023/11/17(金) 06:13:31.18 ID:28WV0iMa \Eが来ると困る http://mevius.5ch.net/test/read.cgi/tech/1635936601/961
962: デフォルトの名無しさん [] 2023/11/28(火) 12:33:08.74 ID:vIU65Zk5 正規表現スレがいいと聞いてきました ここがいい正規表現すれですか? $ perl -e '$a="abc"; $a =~ s/(.*)/[$1]/g; print $a . "\n"' [abc][] なんで後ろにカッコが来るん? .*に全部マッチするんだから 二個目の[]が来るなんてお菓子にゃん? http://mevius.5ch.net/test/read.cgi/tech/1635936601/962
963: デフォルトの名無しさん [sage] 2023/11/28(火) 13:42:04.64 ID:EkqG9ePT perlよく知らんがgとったら消える http://mevius.5ch.net/test/read.cgi/tech/1635936601/963
964: デフォルトの名無しさん [sage] 2023/11/28(火) 13:54:45.94 ID:uy7CvN4q 推測だが、 1) .*にabcがマッチする -> [abc] 2) .*は0個でもいいので、末尾位置(NUL)にマッチする -> [] http://mevius.5ch.net/test/read.cgi/tech/1635936601/964
965: デフォルトの名無しさん [sage] 2023/11/28(火) 14:25:52.10 ID:uy7CvN4q 2回目は$a=""の場合と同じだと思えばいい ヌル文字列でも.*だとマッチするでしょ? http://mevius.5ch.net/test/read.cgi/tech/1635936601/965
966: デフォルトの名無しさん [] 2023/11/28(火) 16:18:10.81 ID:vIU65Zk5 >>963 gとったら消える。Rubyも同じらしい。 >>964 []が出るってことはなにかにマッチしてるってことでしょ? >>965 それなら最初の.*にもマッチするじゃん? 一回目にマッチしなくて、二回目にマッチする理由がわからんのよ http://mevius.5ch.net/test/read.cgi/tech/1635936601/966
967: デフォルトの名無しさん [sage] 2023/11/28(火) 16:18:30.67 ID:JJPCdnVt 仮に2回目でマッチする何かがあったとしても .*はgreedyなんだから1回目で消費してないとお菓子イイ http://mevius.5ch.net/test/read.cgi/tech/1635936601/967
968: デフォルトの名無しさん [sage] 2023/11/28(火) 16:20:34.59 ID:JJPCdnVt でもなぁ バグなら今までこんなん気が付かないはずないと思うからどうなんだろ http://mevius.5ch.net/test/read.cgi/tech/1635936601/968
969: デフォルトの名無しさん [] 2023/11/28(火) 16:21:19.02 ID:vIU65Zk5 $ perl -e '$a="abc"; $a =~ s/(.*)$/[$1]/g; print $a . "\n"' [abc][] $ perl -e '$a="abc"; $a =~ s/(.*$)/[$1]/g; print $a . "\n"' [abc][] 後ろに$入れても同じ 行末以降の何にマッチしてんのこれ? http://mevius.5ch.net/test/read.cgi/tech/1635936601/969
970: デフォルトの名無しさん [] 2023/11/28(火) 16:22:48.63 ID:vIU65Zk5 Rubyのコードも持ってきた。持ってきただけだから意味は知らん。 ruby -e 're=/(.*)/; puts %Q(abc).sub(re){ %Q([#$1]) }' [abc] ruby -e 're=/(.*)/; puts %Q(abc).gsub(re){ %Q([#$1]) }' [abc][] http://mevius.5ch.net/test/read.cgi/tech/1635936601/970
971: デフォルトの名無しさん [sage] 2023/11/28(火) 16:44:51.01 ID:wVUnEJO+ ググってみたがperlのそういう”仕様”として定着してるみたいだな 引っかかったことなかったわ http://mevius.5ch.net/test/read.cgi/tech/1635936601/971
972: デフォルトの名無しさん [sage] 2023/11/28(火) 16:47:59.11 ID:uy7CvN4q >>968 1回目の.*で文字列全体がマッチ、2回目でNUL文字列にマッチするのは どの正規表現環境でも同じだと思うよ http://mevius.5ch.net/test/read.cgi/tech/1635936601/972
973: デフォルトの名無しさん [sage] 2023/11/28(火) 16:49:01.41 ID:CppHkuHl 0文字と一致させたくなければ.*ではなく.+と書けよ http://mevius.5ch.net/test/read.cgi/tech/1635936601/973
974: デフォルトの名無しさん [sage] 2023/11/28(火) 16:59:51.73 ID:fB6/42vV >>972 Perlの文字列はNull Terminatedされてないよ /gだとマッチできないか再度確かめるからzero-lengthのempty stringにマッチするんだとさ でも同じ位置でempty stringに2回はマッチしないようなチェックが入ってるからそこで抜けるんだとさ 個人的にはバグだと思うけどPCRE準拠でみんな作ってるから同じ動きをさせたんだろうね regex101で試すとRustだけが一般に期待する動作をしてる http://mevius.5ch.net/test/read.cgi/tech/1635936601/974
975: デフォルトの名無しさん [sage] 2023/11/28(火) 17:02:27.57 ID:fB6/42vV /(.*)$/みたいに末尾のアンカー入れても結果変わらないから余計におかしい ^を入れたら当然防げるけど http://mevius.5ch.net/test/read.cgi/tech/1635936601/975
976: デフォルトの名無しさん [] 2023/11/28(火) 17:09:04.46 ID:vIU65Zk5 >>971 探したけど見つからんかった。 どこにあった? or どうやって探した? キーワードがわからん http://mevius.5ch.net/test/read.cgi/tech/1635936601/976
977: デフォルトの名無しさん [sage] 2023/11/28(火) 18:08:10.66 ID:waKUlTL5 これは長さゼロでマッチした直後に長さゼロにマッチしてposが進まなかったときにマッチを終了するという、頭の悪い正規表現を書くマヌケのために配慮された動作が例外的なんだよ そのおかげで頭の悪い正規表現を書いても無限ループさせずに済んだことにむしろ感謝するべきだね http://mevius.5ch.net/test/read.cgi/tech/1635936601/977
978: デフォルトの名無しさん [sage] 2023/11/28(火) 18:30:16.15 ID:mMoqXMUf (ハクション! http://mevius.5ch.net/test/read.cgi/tech/1635936601/978
979: デフォルトの名無しさん [sage] 2023/11/28(火) 19:16:57.98 ID:6l9rHssS 単に便利だからゼロ幅マッチさせてるん $str =~ s/()/$1,/g; やってみるといいのん http://mevius.5ch.net/test/read.cgi/tech/1635936601/979
980: デフォルトの名無しさん [sage] 2023/11/29(水) 13:08:47.77 ID:yvH2v9xT 正規表現検索は失敗しないかぎり終わらないって話では abcに対して(.*)$が検索される→「abc+末尾」がマッチ、この時点での位置はcの後ろのゼロ幅 残りの部分に対して再度(.*)$が検索される→「ゼロ幅+末尾」がマッチ、cの後ろのゼロ幅が消費される 残りの部分に対して再度(.*)$が検索される→対象を消費しきっているので失敗→検索終了 http://mevius.5ch.net/test/read.cgi/tech/1635936601/980
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 22 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s