我知道Stack Overflow上已多次询问过这个问题,但正则表达式难以理解。
我尝试了什么:
String sentence = "The #{adjective} brown fox jumps over the lazy dog";
String requierd_sentence = sentence.replaceAll("[{*.*}]", "quick");
System.out.println(requierd_sentence);
在这句话中,形容词不在固定的位置 - 它们随着每个新的字符串/句子而改变。我需要做的是,用句子列之外的另一列中可用的字符串替换形容词。因此从列中获取字符串是可以的,但是正则表达式匹配在许多尝试中失败。
#{any string}
的正确的正则表达式是什么?
The quick brown fox jumps over the lazy dog.
All that #{adjective} is not gold
应输出All that glitters is not gold.
现在上面的两个句子在句子的不同位置都有#{adjective}
,所以我不能使用split
。我必须使用正则表达式。
答案 0 :(得分:2)
您可以使用此功能(请参阅demo):
String replaced = your_original_string.replaceAll("#\\{[^}]*}", "quick");
这是如何运作的?
#\\{
与文字字符*{
[^}]*
否定字符类匹配任何不是右括号的字符}
匹配右括号