2

と言う文字列がありますr"a"r"a"everyを stringに置き換えたいのですr"\1"が、正規表現エンジンがこれを理解できません。

私が試してみました:

  • r"\1"-- クラッシュします (グループ 1ないため、グループ 1 と一致しません)
  • r"\\1"-- クラッシュします (原因不明)

これは私の (独自の) 正規表現エンジンの制限ですか、それとも一般的な問題ですか? それを解決するエレガントな方法はありますか?(たとえば、"a" を "/1" に置き換えてから StrReplace( "/", r"\" ) を置き換えることもできますが、それは良くありません!)

4

1 に答える 1

2

正しい方法はr"\\1"、置換文字列として使用することです。したがって、独自の正規表現エンジン/言語が でチョークする\\場合は、このバグを修正する必要があります。

あなたの例を見ると、正規表現エンジンはまったく必要ありません。しかし、おそらく例は実際の要件よりも単純です...

于 2010-07-23T12:10:11.853 に答える