java - 如何使用 Java 中的正则表达式匹配函数来匹配具有元字符的字符串

标签 java regex string string-matching metacharacters

匹配下面字符串的正则表达式可能是什么

String str = "<Element>\r\n <Sub>regular</Sub></Element>";

有一个

carriage return "\r", new line character "\n" and a space after <Element>.

我的代码如下

if(str.matches("<Element>([\\s])<Sub>(.*)"))
{
     System.out.println("Matches");
}

最佳答案

使用“点匹配换行符”开关:

if (str.matches("(?s)<Element>\\s*<Sub>(.*)"))

打开开关后,\s 将匹配换行符。

我还修复了您的正则表达式,删除了两组冗余括号,并在空白正则表达式之后添加了关键的 *

关于java - 如何使用 Java 中的正则表达式匹配函数来匹配具有元字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15757683/

相关文章:

java - 替换匹配的正则表达式的子字符串

r - 大写字母。 R 等效于 excel "PROPER"函数

java - 将新方法添加到由许多类直接实现的接口(interface)

java - 方法内的字符串索引超出范围 : Java

c# - 删除括号内的空格(引号内的文本除外)

r - 修剪 R 中最后的特殊字符

c - 为什么在两个字符串之间添加一个空格会连接c中的字符串?

string - 批处理 : String substitution sub

java - 在crxde中自动安装bundle的问题

java - 将字母 'a' 的第一次出现与最后一次出现的字母 'o' Java 的位置交换