我需要制作一个与第一个插槽中的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 +]"
答案 0 :(得分:2)
在字符类表达式中使用-
时,允许第一个字符,最后一个字符以及介于两者之间的所有内容。因此,A-C
表示'A'
,'B'
或'C'
。如果您想要'A'
或'C'
,请改为使用[AC]
:
string.matches(("^[AC]{3}$"))
我可以添加
String
或char
变量吗?
是的,如果你遵守字符类表达式的一般规则:
-
中有^
或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}$"))
希望有所帮助