【发布时间】:2011-01-18 12:33:45
【问题描述】:
如果我想检查所有包含子字符串 DEF 的单词,这是否是正确的方法:
^.*[D][E][F].*$
在否定正则表达式时也有一个简单的规则,即修改上面的内容以识别不包含 DEF 的字符串
编辑:我知道这不需要正则表达式,但出于我的目的,它确实需要。
【问题讨论】:
如果我想检查所有包含子字符串 DEF 的单词,这是否是正确的方法:
^.*[D][E][F].*$
在否定正则表达式时也有一个简单的规则,即修改上面的内容以识别不包含 DEF 的字符串
编辑:我知道这不需要正则表达式,但出于我的目的,它确实需要。
【问题讨论】:
这也有效:
^.*DEF.*$
它检查整个字符串是否至少包含一次子字符串“DEF”。但是对于像这样的琐碎表达式:
str.contains("DEF");
做同样的事情。
【讨论】:
^ 和$ 分别代表字符串的开头和结尾。如果您使用 java 的 String.matches(String),则不需要使用它们,因为只有当正则表达式匹配 整个 输入字符串时,此方法才会返回 true。
为什么不直接使用str.contains("DEF") 和!str.contains("DEF")?
【讨论】:
您可以简单地使用DEF 作为您的正则表达式。要识别不包含它的字符串,只需返回与上述表达式不匹配的字符串即可。
【讨论】:
!string.matches( "DEF" );