如何使用正则表达式仅匹配字符串中特定位置的模式?

时间:2014-02-24 19:17:49

标签: java regex substring matching

假设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";

哪个正则表达式仅匹配string1string4开始就位的World 6

5 个答案:

答案 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());