正则表达式而不是字符串。包含(xyz)(Java 1.7)
我试图找出someString
是否包含某个单词,但不起作用:
String someString = "lazy cat";
someString.matches("^.*\\bazy\\b.*$");//do not matches "azy"
这里怎么了
你可以在下面搜索框中键入要查询的问题!
我试图找出someString
是否包含某个单词,但不起作用:
String someString = "lazy cat";
someString.matches("^.*\\bazy\\b.*$");//do not matches "azy"
这里怎么了
# 1 楼答案
你用word boundary{}包围了}{}或
azy
,这意味着它的前后不能是任何单词字符,比如a-z
{_
# 2 楼答案
像这样使用怎么样
编辑:-看了你的字符串后:-
# 3 楼答案
\b
表示单词边界,这意味着您正在搜索单词azy
1,而不是搜索作为子字符串的azy
只需删除
\b
即可获得预期结果然而,如果只想搜索子字符串,那么使用正则表达式效率很低
String.contains
是此类用例的标准替代方案:脚注
一个单词被定义为一系列(至少1个)单词字符,它们之前或之后没有任何单词字符
单词字符在默认设置中定义为
[a-zA-Z0-9_]