使用正则表达式将字符恰好匹配一次

Héc*_*orn 0 java regex

如何将一个字符与Java中的正则表达式完全匹配?假设我想要查找只包含一次数字3的字符串,并且无论它在何处都无关紧要.

我尝试用".*3 {1}.*"来做这个,但显然这也将匹配"330",因为我指定的时间段我不关心它是什么字符.我怎样才能解决这个问题?

Wil*_*ris 7

^[^3]*3[^3]*$
Run Code Online (Sandbox Code Playgroud)

匹配(不是三个),然后是三个,然后是(不是三个).

编辑:添加^$开始和结束.这将强制正则表达式匹配整行.谢谢@Bobbyrogers和@Mindastic

  • 这不会检查整个字符串,并且将匹配他的示例"330"中的前3个字符串.如果要检查整个字符串是否只包含单个3,则需要使用`^`和`$`指定. (3认同)
  • 我认为你的正则表达式遗漏了一些东西.它应该是^ [^ 3]*3 [^ 3]*$因为如果不是,它将匹配4444344443,例如. (2认同)