首页 > 解决方案 > 正则表达式匹配硬模式

问题描述

我有这个输入字符串:

'10,00', '20,00','','aaa','       false   true         '
'aaaaa'','-*/++;;','',-
'1898302',21/07/2011,'12:59',7104, 13:29

我需要匹配这些字符串:

"10,00" 
"20,00"
""
"aaa"
"       false   true         "
"aaaaa'"
"-*/++;;"
"1898302"
"21/07/2011"
"12:59"
"7104"
"13:29"

我目前在 Java 中使用的正则表达式是这样的:('[^']*'|[^\s|,]+). 哪个不准确;它匹配我不想要的逗号。

有人可以帮我使它更准确吗?

标签: javaregex

解决方案


解决当前数据问题的一种方法是添加可选的单引号:

('[^']*''?|[^\s|,]+)
        ^^ 

正则表达式演示

如果要匹配零个或多个单引号,则可以'*改用。


推荐阅读