【发布时间】:2021-05-31 01:18:11
【问题描述】:
我是 Java 正则表达式的新手,我想知道如何构建一个只接受一个字符串的字符串,该字符串由一个或两个逗号分隔的大写字母列表组成,由一个空格分隔。
我需要过滤掉以逗号开头、以逗号结尾的字符串或具有多个连续逗号的字符串。
所有这些都是无效的:
"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" 这样的空格分隔子字符串之一的开头时,它不起作用
我是否应该以空格分隔并为每个子字符串寻找更简单的正则表达式?
【问题讨论】:
-
reject if this
^\s*,|,\s*,|,\s*$is found 按Java 测试 // 或split(",", -1)并检查是否有任何条目为空(仅空格) -
是的,它是有效的。这将有资格作为一个逗号分隔的列表,这完全没问题。