如何将一个字符与Java中的正则表达式完全匹配?让我们说我想要找到一个只包含一次数字3的字符串,它并不重要。
我尝试用"。* 3 {1}。*"但显然这也符合" 330"正如我所指出的那样,我不关心它是什么角色。我该如何解决这个问题?
答案 0 :(得分:7)
^[^3]*3[^3]*$
匹配(不是三个),然后是三个,然后是(不是三个)。
修改:在开头和结尾添加^
和$
。这将强制正则表达式匹配整行。谢谢@Bobbyrogers和@Mindastic
答案 1 :(得分:3)
非正则表达式解决方案:
int index = s.indexOf('3');
boolean unique = index != -1 && index == s.lastIndexOf('3');
如果第一次和最后一次出现在同一个地方且存在于字符串中(不是-1),则该字符基本上是唯一的。