Java 正则表达式得到以问号结尾的句子
我收到了一个大文件,上面记录了过去5年我所有的电子邮件活动。 我想把我所有带问号的句子都拿回来。 我不擅长正则表达式,我只知道一些可以做的事情 有人能给我一个能用的正则表达式吗?(爪哇) 如果可能,我想在下一个示例中返回粗体:Java 正则表达式得到以问号结尾的句子,java,regex,Java,Regex,我收到了一个大文件,上面记录了过去5年我所有的电子邮件活动。 我想把我所有带问号的句子都拿回来。 我不擅长正则表达式,我只知道一些可以做的事情 有人能给我一个能用的正则表达式吗?(爪哇) 如果可能,我想在下一个示例中返回粗体: Lorem ipsum dolor sit amet,是一位杰出的献身者。Sed amet elementum整数nec直径,eu CONCENTETTUR nibh?与自然社会(sociis natoque penatibus et magnis dis-parturi
Lorem ipsum dolor sit amet,是一位杰出的献身者。Sed amet elementum整数nec直径,eu CONCENTETTUR nibh?与自然社会(sociis natoque penatibus et magnis dis-parturient montes)。您可以使用如下表达式:
[^.!?]+\?
这至少与示例中所需的文本相匹配。您可以使用如下表达式:
[^.!?]+\?
这将至少与示例中所需的文本匹配。请尝试以下代码:
String str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
+ "My second question? Sed amet elementum."
+ "Integer nec diam erat, eu consectetur nibh?"
+ "Cum sociis natoque penatibus et magnis dis parturient montes.";
Pattern pattern = Pattern.compile("([^.?!]*)\\?");
Matcher matcher = pattern.matcher(str);
while(matcher.find())
{
System.out.println(matcher.group());
}
它输出:
My second question?
Integer nec diam erat, eu consectetur nibh?
在这里,我将句子结尾定义为,代码>或?
但您可以轻松扩展该列表。尝试以下代码:
String str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
+ "My second question? Sed amet elementum."
+ "Integer nec diam erat, eu consectetur nibh?"
+ "Cum sociis natoque penatibus et magnis dis parturient montes.";
Pattern pattern = Pattern.compile("([^.?!]*)\\?");
Matcher matcher = pattern.matcher(str);
while(matcher.find())
{
System.out.println(matcher.group());
}
它输出:
My second question?
Integer nec diam erat, eu consectetur nibh?
在这里,我将句子结尾定义为,
或?
但您可以轻松扩展该列表。^意味着您将匹配所有字符,后面列出的字符除外。您可以使用\\来转义?,这意味着您确实对字符问号感兴趣(否则?表示前面的项目是可选的)。^表示您将匹配所有字符,但后面列出的字符除外。您可以使用\\来转义?,这意味着您确实对字符问号感兴趣(否则?表示前面的项目是可选的)。