0
正規表現(?<!\\{)\\[[a-zA-Z0-9_]+\\](?!\\})
を実装しようとしています。否定先読みが移動でサポートされていないように、このための代替表現であるかもしれないもの、{[ua]}
と{[ua_enc]}
正規表現、ネガティブ先読み代替
でなければなりません
マッチ値は[ua]
と[ua_enc]
と比類のないようになりますか?
正規表現(?<!\\{)\\[[a-zA-Z0-9_]+\\](?!\\})
を実装しようとしています。否定先読みが移動でサポートされていないように、このための代替表現であるかもしれないもの、{[ua]}
と{[ua_enc]}
正規表現、ネガティブ先読み代替
でなければなりません
マッチ値は[ua]
と[ua_enc]
と比類のないようになりますか?
これに代わる式はありません。普通の(?:[^{]|^)(...)(?:[^}]|$)
を使って目的のマッチをキャプチャし、前と次の文字がカッコではないことをアサートするのは多少の作業です:フルマッチではなく最初のキャプチャグループで作業する必要があります。 2つの一致の間に1文字(例えば、[foo]_[bar]
)。最も良い方法は実際にはFindAllStringSubmatchIndex
を使用し、前と次の文字を手動でチェックして、それらがregexpの外側のかっこでないことを確認することです。
回避策は、最終的に達成したい、テキストを置き換える、または抽出する方法によって異なります。あなたはおそらく['(^ | [^ {])(\ [\ w + \])([^}] | $)'](https://regex101.com/r/sk3cwV/2)を使用することができます。 –