我知道这个问题在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
。我必须使用正则表达式模式。
您可以使用此代码(请参见demo):
String replaced = your_original_string.replaceAll("#\\{[^}]*}", "quick");
这是如何运作的?
#\\{
文本字符相匹配*{
[^}]*
负字符类匹配的是不是一个右括号的任何字符}
一个右括号匹配本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句