-5

誰かが次のことを行うための正規表現を提供してくれれば、本当に感謝しています。

ルール:

  • 「and」を除くすべての単語は SYN() でラップする必要があります
  • 文字列には無制限の量の単語を含めることができ、同じ規則が文字列内のすべての単語に適用されます。

例:

「ロンドンとトイレ」が「SYN(ロンドン)とSYN(トイレ)」に

「10 and Mayfield and London」は「10 and SYN(Mayfield) and SYN(London)」になります (10 は単語ではないためラップされません)。

私の質問の理由は、私は ORACLE シソーラスを使用しており、SQL 構文では単語を SYN() でラップする必要があるためです。

最初は、スペースを検索して文字列内のすべての単語を分割し、次に String.format(SYN(%s), 'London') を使用して単語を SYN() でラップするつもりでしたが、これがすべてわかっていました正規表現で行うことができ、私を助けてくれる熱心な正規表現狂信者がいると思いました.

4

1 に答える 1

0

試す

System.out.println("10 and Mayfield and London".replaceAll("(\\p{Alpha}+)", "SYN($1)").replace("SYN(and)", "and"));

出力

10 and SYN(Mayfield) and SYN(London)
于 2012-12-17T18:34:42.293 に答える