我有一个字符串如下:
Acid Exposure
我希望捕获从Time pH<
到Time pH<
的所有内容,包括Acid Exposure (pH) Total
Total Normal
Clearance pH : Channel 7
Number of Acid Episodes 26
Time 31.5 min
Percent Time 7.4%
Mean Acid Clearance Time 73 sec
Longest Episode 7.1 min
Gastric pH : Channel 8
Time pH<4.0 425.9 min
行中的所有内容,以便我最终得到:
Pattern my_pattern = Pattern.compile("Acid Exposure.*?Time pH.*?$",Pattern.DOTALL);
我试图捕获这个的方式是:
Pattern.DOTALL|Pattern.MULTILINE
但我没有运气。我也试过添加function
但也没有运气
答案 0 :(得分:2)
您可以使用:
Pattern my_pattern = Pattern.compile("Acid Exposure.*?Time pH<[^\\n]*", Pattern.DOTALL);
[^\n]*
之后的 Time pH<
将匹配到行尾。
答案 1 :(得分:1)
也可以使用围绕.*?
的群集中的dot-all修饰符来完成
因此,您不需要使用全局 dot-all修饰符。
Acid Exposure(?s:.*?)Time pH.*
并且,由于某些奇怪的原因(?s:.*?)
比引擎中的[\S\s]*?
快。