java.util.regex中

dr8*_*r85 3 java regex

任何人都可以向我解释如何使用正则表达式识别包含例如单个P字符的任何字符串?你也可以解释一下它是如何评估的吗?

编辑:[^P*]和之间有什么区别[^P]*

Gre*_*ill 6

包含单个P字符的字符串是:

  • 包含非P字符的(可能为空)字符串
  • 一个P.
  • 包含非P字符的(可能为空)字符串

在正则表达式格式中,这是:

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

哪里:

  • ^ 匹配字符串的开头
  • [^P]* 匹配P,0或更多次以外的任何字符
  • P 匹配P.
  • [^P]* 匹配P,0或更多次以外的任何字符
  • $ 匹配字符串的结尾

[^P*]和之间的区别[^P]*是:

  • [^P*]匹配任何既不是P也不是*的单个字符
  • [^P]* 匹配零个或多个不是P的字符

这里的位置*当然很重要.在里面[],*没有任何特殊意义.在外面[],*意味着"匹配前一个零次或多次".

  • 然后你的正则表达式chaecker有问题,@ david :-)我建议你在唯一真正重要的检查器上检查它,一个Java程序. (3认同)