我有一个长字符串,格式为:
"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/