我正在尝试使用Java查找两个单词之间的所有单词。这些词是换行的。请参阅下面的示例文本:
示例文本:
this is
an example
for the problem(s)
I
am having
while
working on
the issue-101
我需要所有单词[包括特殊字符]和单词示例之间的分隔符,例如:
预期产量:
for the problem(s)|I|am having|while|working on|the issue-101
我尝试了以下RegEx:
(?<=example\r\n)\s?\w+
这只给我:
for
我知道上面的正则表达式还不完整,但是我希望它能给我至少所有的单词,然后再考虑添加定界符。
任何帮助或指示,我们将不胜感激。找到了一个问题Regular expression with carriage return
这或多或少类似于我的问题,但仍然无法完全帮助我。
最佳答案
这是在单个String#replaceAll
调用中合并2个替换项的方法:
String repl = data.replaceAll("(?s)(.*?example\\s*)|[\r\n]+", "|");
//=> |for the problem(s)|I|am having|while|working on|the issue-101
唯一需要注意的是,它将在输出中具有起始管道字符。
(?s)
用于DOTALL也使点匹配换行符。关于java - 正则表达式可在回车后匹配任何字符并给出单个定界字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21449109/