假设您要使用以下正则表达式匹配字符串:“。when is(\ w +)。 ”-我试图在“ when is”之后获取事件
我可以通过matcher.group(index)来获取事件,但是如果该事件像退伍军人节那样是无效的,因为这是两个字,所以它不起作用。我只能在'when is'之后得到第一个单词
我应该使用什么正则表达式来获取“ when is”之后的所有单词
另外,假设我想捕捉某人,例如
'什么时候*生日
如何使用正则表达式捕获is和Birthday之间的所有文本?
您可以尝试以下方法:
^when is (.*)$
Run Code Online (Sandbox Code Playgroud)
这将找到一个以开头的字符串,when is并将其他所有内容捕获到该行的末尾。
正则表达式将返回一组。您可以这样访问它:
String line = "when is Veteran's Day.";
Pattern pattern = Pattern.compile("^when is (.*)$");
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
System.out.println("group 1: " + matcher.group(1));
System.out.println("group 2: " + matcher.group(2));
}
Run Code Online (Sandbox Code Playgroud)
输出应为:
group 1: when is Veteran's Day.
group 2: Veteran's Day.
Run Code Online (Sandbox Code Playgroud)