問題タブ [pypi-regex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 先読みがなくても、テキストを追加すると、この正規表現が入力と一致するのはなぜですか?
この質問への回答に取り組んでいるときに、次の正規表現を思いつきました。
(注: この正規表現にはPyPIregex
モジュールが必要です)
(簡単な説明: 正規表現は、先読みのキャプチャ グループが一度一致した後に値を変更できないという事実に依存しているため、最初の一致foo=
が見つかった後、(?=())
一致とそれ以降(?!\2)
は常に失敗します。)
この正規表現は、質問に示されている 2 つの例で正しく機能します。
foo=
しかし、 after aの出現がある場合、何か奇妙なことが起こりますbar=2
:
ご覧のとおり、文字列'notfoo=1,bar=2,foo=3,'
は の一致を生成しましたnotfoo=1,bar=2
。はfoo=3,
一致に含まれていませんが、削除すると、正規表現は一致しなくなります! これはどのように可能ですか?regex
これはモジュールのバグですか?