我使用过这个Java专用正则测试器和雷吉斯101测试器,它们都可以找到新行的所有4个匹配项,如下面的示例字符串中所示。字符串数据来自UTF-8文件.
#1
#2
#3
#4但是,在Android中运行下面的#2, #3, #4代码时,只有是正匹配的。编辑:我发现在#1上方放置空行使其匹配,这就解释了为什么所有其他人都有空行。
Java代码:
Pattern pattern = Pattern.compile("^#.*", Pattern.CASE_INSENSITIVE |
Pattern.MULTILINE);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
for (int i = 0; i <= matcher.groupCount(); i++) {
String foundWord = matcher.group(i);
}
} 就像matcher.find()完全跳过了第一行
发布于 2019-08-20 17:45:52
也许您在#1或另一个字符之前有一个空空间。您的代码具有所需的输出
public static void main(String[] args) {
String text = "#1 \n" +
"#2\n" +
"#3\n" +
"#4\n" +
"enter code here";
Pattern pattern = Pattern.compile("^#.*", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}
}输出
#1
#2
#3
#4https://stackoverflow.com/questions/57578933
复制相似问题