java - 使用正则表达式分割字符串

标签 java regex string date

我有一个长字符串,格式为:

"DD.MM.YYYY comments for this date ; DD.MM.YYYY comments for another date ; etc".

我想分割数组的字符串(日期+描述)。我尝试使用此模式进行拆分,但它匹配整个字符串而不是拆分。

(\d{2}[.]\d{2}[.]\d{4})[^(\1)]*

我无法用 ; 分隔符分割,因为文本可能包含它。

最佳答案

尝试:

(\d{2}[.]\d{2}[.]\d{4})\D*

这将匹配日期后跟任何非数字字符。

如果描述可以包含数字,则尝试:

((\d{2}[.]\d{2}[.]\d{4}).*?(; (?=\d))|(\d{2}[.]\d{2}[.]\d{4}).*$)

这将匹配日期后跟任何内容,直到遇到分号后跟空格和数字或日期后跟任何内容,直到字符串末尾。

如果您想使用日期作为分隔符(而不是分号后跟空格和数字),请尝试以下操作:

((\d{2}[.]\d{2}[.]\d{4}).*?((?=(\d{2}[.]\d{2}[.]\d{4})))|(\d{2}[.]\d{2}[.]\d{4}).*$)

关于java - 使用正则表达式分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32956074/

相关文章:

java - 用Java解析这个字符串

javascript - 使用正则表达式获取括号内的字符串,删除括号

Java - ArrayList - .size() 方法

java - “com.google.appengine.api.backends.BackendService”已被弃用

java - 如何通过将两个 Flux 中的值配对到一个元组中来组合发布者?

windows - 为什么 Textpad 会询问您是否要使用 POSIX 正则表达式语法?

java - 我无法通过 javamelody 监控 spring 应用程序

python - 可以使 re.finditer() 从组中排除分隔符吗?

javascript - 当以不允许的字符开始时,使用正则表达式仅允许 HTML 输入字段中的某些字符似乎不起作用

string - 如何通过模糊匹配查找字符串中子字符串的位置