本文介绍了正则表达式java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想尝试输入Input之间的内容,我的模式做得不对,请帮忙。
I am trying to Take the content between Input, my pattern is not doing the right thing please help.
下面是sudocode:
below is the sudocode:
s="Input one Input Two Input Three";
Pattern pat = Pattern.compile("Input(.*?)");
Matcher m = pat.matcher(s);
if m.matches():
print m.group(..)
必需输出:
一个
两个
三
推荐答案
使用预测输入
并在循环中使用 find
,而不是匹配
:
Use a lookahead for Input
and use find
in a loop, instead of matches
:
Pattern pattern = Pattern.compile("Input(.*?)(?=Input|$)");
Matcher matcher = pattern.matcher(s);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
看到它在线工作:
但最好在这里使用split:
But it's better to use split here:
String[] result = s.split("Input");
// You need to ignore the first element in result, because it is empty.
查看在线工作:
这篇关于正则表达式java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!