0

オブジェクトを使用して、文字列内のすべての出現を正規表現に置き換えようとしていPatternますが、奇妙な出現のみを置き換えます。

final Pattern p = Pattern.compile("(^|\\W|\\\\N)(recursive)(\\W|$)", Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
System.out.println(p.matcher("i-i-i").replaceAll("$1I$3"));

これは私を返します:

I-i-I

でも真ん中のIも合わせる必要があるのですが、なぜかそれがつかめません。また、単純化された正規表現(^|-)(I)($|-)を試し、同じことを試みて、i-i-i-i-i-ime が返されましたI-i-I-i-I-i

奇数のダッシュ (4x+1) が既に一致しているためだと思いiます。それを許可することは可能ですか?

4

1 に答える 1