Java正则表达式不匹配多行字符串

标签 java regex multilinestring

很抱歉我是 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/

相关文章:

java - 将 java Class<> 转换为 kotlin 的 KClass<>

Java 包扫描器 - 查找具有给定接口(interface)的所有类

java - 对自定义对象的 ArrayList 进行排序并在 Java 中重新排序

python - re.sub() 在 python 中的奇怪执行

php - 在PHP文件中查找多行字符串

java ;字符串替换全部给出错误

java - 防止 getText() 计算 EL 表达式

c# - 如何在 C# 正则表达式中获取捕获组的名称?

postgis - STLineMerge 不会将我的 MULTILINESTRING 放入 LINESTRING

python - 在python中从数组构造多行字符串