正则表达式匹配逗号分隔值

亚伯亚历山大

我是 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"

我应该以空格分割并为每个子字符串寻找更简单的正则表达式吗?

MC帝王

那将是这样的:

^[A-Z](,[A-Z])*( [A-Z](,[A-Z])*)*$

这里发生的事情如下:

  • 我们期待一个字母,可选地后跟一个或多个逗号,紧接着是另一个字母。
  • 然后我们可以选择接受一个空格,然后是上述模式。这是重复的。

测试:https : //regex101.com/r/kzLhtw/1

你当然可以,稍微使所有的拍摄组非捕获优化正则表达式:只是把?:紧跟其后的(,就是(?:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式匹配逗号分隔的键=值列表,其中值可以包含html?

正则表达式需要匹配逗号分隔列表中的各个值

正则表达式捕获逗号分隔的值

提取逗号分隔值的正则表达式?

逗号分隔的正则表达式

正则表达式匹配逗号分隔表达式的左侧

正则表达式匹配用逗号分隔的值列表,不允许使用尾部逗号

正则表达式匹配逗号分隔的字符串,在行末没有逗号

在用逗号分隔的数字对之间用管道分隔的正则表达式将匹配什么?

正则表达式模式使用逗号分隔值,但保留括号内使用的逗号

C#正则表达式-匹配以逗号分隔的元组列表

使用正则表达式匹配数字以逗号分隔的数字

正则表达式-在分隔符之间不匹配每个逗号

正则表达式匹配逗号分隔的字符串

正则表达式匹配命令行中用逗号分隔的多个参数

正则表达式匹配括号内的数字,以逗号分隔

正则表达式将逗号分隔的单词与最后的“and”子句匹配

正则表达式以逗号分隔列表中的单词匹配

正则表达式匹配具有递归的逗号分隔的平衡方括号

POSIX正则表达式:仅在逗号分隔的项目内匹配

正则表达式匹配用多个逗号分隔的数字

使用正则表达式匹配多个逗号分隔的单词

R正则表达式,用于匹配列/向量中逗号分隔的部分

正则表达式以匹配两个或多个逗号分隔的整数

正则表达式匹配具有固定长度的逗号分隔列表?

正则表达式匹配逗号分隔的字符串

逗号分隔数字序列的Javascript正则表达式

括号中用逗号分隔的数字的正则表达式

正则表达式只允许数字逗号分隔