首先,你在错误的假设下使用修饰符。
Pattern.MULTILINE或
(?m)告诉Java接受锚点
^并
$在每行的开头和结尾进行匹配(否则,它们仅在整个字符串的开头/结尾进行匹配)。
Pattern.DOTALL或
(?s)告诉Java也允许点与换行符匹配。
其次,在你的情况下,正则表达式失败,因为你使用的matches()是期望正则表达式匹配整个字符串的方法-这当然不起作用,因为
(\W)*(\S)*匹配后还剩下一些字符。
因此,如果你只是在寻找以开头的字符串
User Comments:,请使用regex
^s*User Comments:s*(.*)
与
Pattern.DOTALL选项:
Pattern regex = Pattern.compile("^\s*User Comments:\s+(.*)", Pattern.DOTALL);Matcher regexMatcher = regex.matcher(subjectString);if (regexMatcher.find()) { ResultString = regexMatcher.group(1);} ResultString 然后将包含以下内容 User Comments:



