Java Regex验证

时间:2014-10-21 15:37:52

标签: java regex

我需要制作一个与第一个插槽中的a或c匹配的正则表达式," char(0)" 但我只知道如何使用A-Z

   string.matches(("^[A-C]{3}$")) //this includes B, i dont want this to happen

我可以添加一个字符串吗?还是char变量? a和c的insteas?像

  "[+ char +]"

3 个答案:

答案 0 :(得分:2)

在字符类表达式中使用-时,允许第一个字符,最后一个字符以及介于两者之间的所有内容。因此,A-C表示'A''B''C'。如果您想要'A''C',请改为使用[AC]

string.matches(("^[AC]{3}$"))
  

我可以添加Stringchar变量吗?

是的,如果你遵守字符类表达式的一般规则:

  • 如果-中有^String,请将它们放在后面
  • 如果]中有\String个字符,请在其前面添加转义字符。

假设你的字符串中没有特殊字符,你可以

String str = "ac";
string.matches(("^[" + str + "]{3}$"))

答案 1 :(得分:1)

尝试"^[AC]{3}$"

括号只匹配一个字符,因此在这种情况下,它们只匹配A或C

答案 2 :(得分:1)

首先,你应该在互联网上做一些研究:http://www.vogella.com/tutorials/JavaRegularExpressions/article.html。这将为您提供关于正则表达式的非常好的教程。

根据该链接,您应该尝试:

string.matches(("^[AC]{3}$")) 

希望有所帮助