【发布时间】:2014-06-17 05:20:40
【问题描述】:
我知道这个问题在 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。我必须使用正则表达式模式。
【问题讨论】:
-
给出样本输入和输出。这比对预期输出的多行解释更有意义。
-
正确转义
[和{:sentence.replaceAll("\\[\\{*.*}]", "quick");。