java - Java Regex忽略了换行符而没有Dotall

原文 标签 java regex

我必须解析返回的电子邮件中的特定对象ID。问题在于,返回电子邮件时,id可能会分成几行。通常它应该看起来像这样:

foo#bar-20130101-103000#12345


我对最后一部分“ 12345”感兴趣。问题在于该字符串倾向于被换行符分隔,例如:

foo#bar-20130101-103000#12
345


这导致我的正则表达式

[a-zA-Z0-9äöüÄÖÜß]{1,5}#[a-zA-Z0-9äöüÄÖÜß]{1,5}-\d{8}-\d{6}#(\d+)


只找到“ 12”而不是“ 12345”。现在,我在网上发现的所有提示都是使用Pattern.MULTILINE和/或Pattern.DOTALL,但多行仅影响^和$锚,而dotall仅使。也匹配换行符。问题是我没有。在这里,它也不是真正适用的,因为我只想要数字。
那么我怎样才能使我的正则表达式与整个事情匹配,而不是在换行符处停止呢?

最佳答案

[\d\r\n]将匹配数字或换行符,因此请尝试使用([\d\r\n]+)

关于java - Java Regex忽略了换行符而没有Dotall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19948281/

相关文章:

java - 遍历来自属性文件的SOAP请求

java - Activiti Engine:任务事件-用户为空

regex - 在 Vim 中匹配单引号或双引号字符串

java - 空字符串的 Optional 实现

java - 默认情况下,Java和C++中的类是私有(private)类还是公共(public)类?

java - 如何解析JSON对象,在适当的位置更新它,然后将其保存回Java中的磁盘?

javascript - 我如何只删除文本中的最终数字

php - Sed 正则表达式通过 Web 浏览器的工作方式有所不同

javascript - 正则表达式在AngularJS中不起作用

python - Python正则表达式:用户输入多个搜索词