我知道已经讨论过很多次了,但是我尝试了很多方法来使我的正则表达式从多行中读取信息,但没有任何效果。这是我想做的事情:
我有一个文本文件。它的内容为:
Description1 This is a test description. Yay. Description2
正则表达式
(?<=Description1\\s).*(?=\\sDescription2)
按照预期的方式工作,以返回之间的所有文本,但不包括单词Description1和Description2。但是,即使中间的文本由另一行分隔,我也必须能够做到这一点。像这样
Description1 This is a
test description. Yay. Description2
我已经尝试了所有可以找到的东西,从
Pattern.MULTILINE
标志到Pattern.DOTALL
,再到开始添加(?s)
,再添加[/r/n]
,似乎没有任何效果。任何帮助将不胜感激。这是一个更大的个人项目的一小步。
最佳答案
这应该工作
(?s)(?<=Description1\\s).*?(?=\\sDescription2)
^ ^
(?s)
将使.
匹配换行符.*?
会延迟匹配..e.e,它会尽可能少地匹配。.这是因为使用.*
会终止匹配,直到最后一个Decription2