我正在设计一个程序,其中用户输入具有三个特定模式的字符串"has"
但"has"
之间的字符可以更改。例如,用户可以输入字符串,如"iihasiiaahasiihas"
或"iihasiaaahasiaaahas"
。分隔字符串模式的子字符串
我使用这个代码到包含"has"
子:
int va= sr.indexOf("has");
int va2=sr.lastIndexOf("has");
String s1=sr.substring(va, va2+3);
但我的问题是,如果用户输入字符串包含一个或两个"has"
它也将独立子。
我想要那个包含三个"has"
的子字符串,我不能使用比较方法,因为我不知道用户将在三个"has"
之间输入的字符。所以任何人都可以给我建议,我该怎么办?
输出应该是这样的:
"hasiiaahasiihas"
为string1
和"hasiaaahasiaaahas"
另一个string
。
在三个字符之间"has"
可以改变。
这似乎更像Sarah实际上想要做的事情。 – sage88
我打算说使用var n = str.match(/has.+has.+has/); Upvoted your answer – WindsorAndy
@WindsorAndy有一点需要注意:你所建议的正则表达式使用的是一个贪婪的量词+而不是不情愿的量词'+?'。 对于一个字符串'“hasxhasxhasxhas”',你的正则表达式'。+ has。+ has'会匹配整个字符串,但是我的匹配是前3个has。换句话说,如果没有不情愿的量词,你会得到最长的匹配。 –