正则表达式,用逗号分隔的字符

时间:2016-05-19 13:55:29

标签: java regex

我想检查一下String的格式。 可能的格式是:

-"AZERTY"
-"AZERTY,REGULAR,AKILO"

我这样做,但我不确定:

String formatAttributes = "^[a-zA-Z0-9](,[a-zA-Z0-9])?*$";

这是对的吗?

2 个答案:

答案 0 :(得分:2)

以下是如何继续:

Pattern pattern = Pattern.compile("\\w+(,\\w+)*");
System.out.println(pattern.matcher("AZERTY").matches());
System.out.println(pattern.matcher("AZERTY,REGULAR,AKILO").matches());

<强>输出:

true
true

注意: \w是一个单词字符:[a-zA-Z_0-9]这意味着下划线已添加到您的初始正则表达式中,如果您没有&#39;我想要它,正则表达式将是[a-zA-Z0-9]+(,[a-zA-Z0-9]+)*

答案 1 :(得分:0)

这里有几个合理的解决方案。假设您只想完全匹配两个示例AZERTYAZERTY,REGULAR,AKILO,其中字符可以是任意a-z

^([a-z0-9]+(?:,[a-z0-9]+,[a-z0-9]+)?)$

Regular expression visualization

注意:此表达式假定使用不区分大小写的标记。

现场演示

https://regex101.com/r/yP6lX6/1