假设4个字符串,2个匹配,而另一个不匹配:
String string1 = "Hello World View";
String string2 = "Hello Nether World";
String string3 = "A World You should not find";
String string4 = "Any World is good";
哪个正则表达式仅匹配string1
或string4
开始就位的World
6
?
答案 0 :(得分:2)
"^.{6}World"
假设您使用的Matcher.find
不需要整个字符串匹配:^
表示“字符串的开头”,所以这需要字符串的开头跟随任何六个字符串字符,然后是你的模式。
答案 1 :(得分:1)
您可以使用positive lookbehind assertion:
(?<=^.{6})World
答案 2 :(得分:1)
String.matches(".{6}World.*")
开始,6个字符,世界
答案 3 :(得分:0)
没有正则表达式,substr会更快。
伪代码:
String strWorld = "World";
String string1 = "Hello World View";
bool bFound = false;
bFound = ( strWorld == string1.substr(6, strWorld.length()) ) ? true : false;
if ( bFound ) { }
答案 4 :(得分:-2)
您可以使用方法region()
搜索字符串的一部分。我的情况:
matcher.region(6, str.length());