构造正则表达式模式以匹配句子

我正在尝试编写一个正则表达式模式,该模式将匹配以多个或一个制表符和/或空格开头的任何句子。 例如,我希望我的正则表达式模式能够匹配“你好,我喜欢正则表达式!” 但是所以我在“你好”之后如何匹配单词。 到目前为止我有这个:

String REGEX = "(?s)(\\p{Blank}+)([az][ ])*"; Pattern PATTERN = Pattern.compile(REGEX); Matcher m = PATTERN.matcher(" asdsada adf adfah."); if (m.matches()) { System.out.println("hurray!"); } 

任何帮助,将不胜感激。 谢谢。

 String regex = "^\\s+[A-Za-z,;'\"\\s]+[.?!]$" 

^表示“以”开头“
白色空间
+表示1或更多
[A-Za-z,;'"\\s]表示任何字母,,,,, '"或空白字符
$表示“以…结尾”

通过定义匹配句子的示例正则表达式:“句子是一系列字符,从至少一个空白字符开始,以.!?之一结尾”如下:

 \s+[^.!?]*[.!?] 

正则表达式可视化

请注意,换行符也将包含在此匹配中。

如果您希望匹配以空格开头的所有字符串,可以尝试使用“^ \ s + *”正则表达式。

此工具可以帮助您有效地测试正则表达式。

http://www.rubular.com/

根据您的要求和要求,以下内容将起作用。

 String s = " hello there I like regex!"; Pattern p = Pattern.compile("^\\s+[a-zA-Z\\s]+[.?!]$"); Matcher m = p.matcher(s); if (m.matches()) { System.out.println("hurray!"); } 

working demo