Java正则表达式匹配零次或一次
我在Java中玩Regex,我想匹配一个零或一次出现点.
的字符串。所以我希望任何带单点或无点的字符串返回true,而带两个或更多点的字符串返回false
根据Java文档:
X? X, once or not at all
因此,我有以下几点:
String str = "abc.def";
System.out.println(str.matches(".?"));
我本以为str
会匹配.
零次或一次,但它会打印false
我误解了?
的意思了吗?我该怎么做才能使它只匹配零次或一次
# 1 楼答案
正确的模式是:
首先是任意数量的非点字符,然后可选地是一个点,后跟任意数量的非点字符