任何人都可以向我解释如何使用正则表达式来识别包含例如单个P字符的任何字符串吗?您是否也可以解释如何评估它?
编辑:[^P*]
和[^P]*
之间有什么区别?
答案 0 :(得分:6)
包含单个P字符的字符串是:
在正则表达式格式中,这是:
^[^P]*P[^P]*$
其中:
^
匹配字符串的开头[^P]*
匹配除P,0或更多次以外的任何字符P
与P [^P]*
匹配除P,0或更多次以外的任何字符$
匹配字符串的结尾 [^P*]
和[^P]*
之间的差异是:
[^P*]
匹配任何既不是P也不是* [^P]*
匹配零个或多个不是P *
的位置当然很重要。在[]
内,*
没有任何特殊含义。在[]
之外,*
表示“将以前的内容与零次或多次匹配”。
答案 1 :(得分:2)
大卫,我想我在one of your previous questions的回答会帮助你。至于如何评估,我不确定你的意思,但你可能想查看Pattern类的API文档。
[^ P *]和[^ P] *之间的差异是:
答案 2 :(得分:1)
假设您确实想要检查单个“P”。这是一种非正则表达式。
for(int i = 0 ;i< string.length(); i++){
if ( string.charAt(i) == 'P' ){
count++;
}
}
if ( count == 1 ){
System.out.println("String contains a single P");
}