2017-01-25 7 views
0

正規表現(?<!\\{)\\[[a-zA-Z0-9_]+\\](?!\\})を実装しようとしています。否定先読みが移動でサポートされていないように、このための代替表現であるかもしれないもの、{[ua]}{[ua_enc]}正規表現、ネガティブ先読み代替

でなければなりません

マッチ値は[ua][ua_enc]と比類のないようになりますか?

+1

回避策は、最終的に達成したい、テキストを置き換える、または抽出する方法によって異なります。あなたはおそらく['(^ | [^ {])(\ [\ w + \])([^}] | $)'](https://regex101.com/r/sk3cwV/2)を使用することができます。 –

答えて

2

これに代わる式はありません。普通の(?:[^{]|^)(...)(?:[^}]|$)を使って目的のマッチをキャプチャし、前と次の文字がカッコではないことをアサートするのは多少の作業です:フルマッチではなく最初のキャプチャグループで作業する必要があります。 2つの一致の間に1文字(例えば、[foo]_[bar])。最も良い方法は実際にはFindAllStringSubmatchIndexを使用し、前と次の文字を手動でチェックして、それらがregexpの外側のかっこでないことを確認することです。

関連する問題