很抱歉我是 Java 新手。我需要匹配 Java 中的多行字符串,如下所示:
meno je povinné pole
priezvisko je povinné pole
heslo je povinné pole
email je povinné pole
email nemá platný formát
musíte súhlasiť s podmienkami
这是匹配该字符串的模式。
Pattern p = Pattern.compile("meno.+heslo", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE);
Matcher m = p.matcher(alert.getText().toLowerCase()); // text from the example
这有什么问题吗?如果我只测试第一行,它就可以工作。所以我认为问题出在线路上。
最佳答案
.
将与换行符不匹配,要修复此问题,请在编译模式时使用 DOTALL 标志。
Pattern.DOTALL
MULTILINE
标志只会执行以下操作:
“在多行模式下,表达式 ^ 和 $ 分别匹配行终止符或输入序列末尾的后面或前面。”
关于Java正则表达式不匹配多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60304048/