我是 Java 中的 Regex 新手,我想知道如何构建一个只需要一个字符串的字符串,该字符串由一两个逗号分隔的大写字母列表组成,由单个空格分隔。
我需要过滤掉以逗号开头、以逗号结尾的字符串或具有多个连续逗号的字符串。
所有这些都是无效的:
"D,, D"
"D D,,"
"D, ,D"
"D, ,,D"
"D,, ,D"
"D,,"
",,A"
",A"
"A,"
所有这些都是有效的:
"D,D T,F"
"D,D T"
"A,A"
"A"
我使用(\s?("[\w\s]*"|\d*)\s?(,,|$))
了连续的逗号,但是当逗号位于末尾或开始一个空格分隔的子字符串时,它不起作用"D, ,D"
我应该以空格分割并为每个子字符串寻找更简单的正则表达式吗?
那将是这样的:
^[A-Z](,[A-Z])*( [A-Z](,[A-Z])*)*$
这里发生的事情如下:
测试:https : //regex101.com/r/kzLhtw/1
你当然可以,稍微使所有的拍摄组非捕获优化正则表达式:只是把?:
紧跟其后的(
,就是(?:
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句