2

特定の文字列の前にスペースを追加しようとしています( たとえば ) 、正規 Token表現を別の正規表現に置き換えます:somethingTokensomething Tokensomething Tokensomething Token_something Token

スペース以外の文字とトークンに一致する正規表現を見つけるのに苦労していますが、一致にスペース以外の文字を含めることはできません(そうしないと、同様に置き換えられます)。(失敗した) 試みは、\bアンカー (単語の先頭に一致する必要があります) を否定しようとすることでしたが、アンカーを否定できるかどうかわかりません。これに関するヘルプをいただければ幸いです。ありがとう。

4

3 に答える 3

1

Java では、これは次のように実現できます。

final String text = "fooToken foo Token";

// Prints 'foo Token foo Token'
System.out.println(text.replaceAll("(?<=\\S)(?=Token)", " "));

ここでの概念は、後読みと後読みです。詳細については、Regex チュートリアル - 先読みおよび後読みゼロ幅アサーションを参照してください。

于 2011-06-14T21:43:43.140 に答える
0

(?<!\u0020)(?=Token)

これはスペース以外を後ろから見て、次にトークンを先に見て、幅はありません。このようにして、この一致をスペースに置き換えることができます。

編集:Javascriptで動作させる必要がある場合は \u0020?(?=Token) 、スペースをオプションにすると、スペースをスペースに置き換えて実質的な変更はありません。

于 2011-06-14T21:27:38.060 に答える