繁体   English   中英

正则表达式以匹配'\\ n'字符

[英]Regular expression to match '\n' character

我有一个字符串"<?xml version=2.0><rss>Feed</rss>"我写了一个正则表达式来匹配此字符串,如下所示:

"<?xml.*<rss.*</rss>" 

但是,如果输入字符串包含\\ n之类的“ \\ nFeed”,则不适用于上述正则表达式。

如何修改我的正则表达式以在字符串之间包含\\ n字符。

点的匹配行为可以通过标志来控制。 看起来在Java中,点的默认匹配行为是除行终止符\\ r和\\ n之外的任何字符。

我不是Java程序员,但是通常在搜索字符串的开头使用(?s)可以将点的匹配行为更改为任何字符,包括行终止符。 因此,也许"(?s)<?xml.*<rss.*</rss>"有效。

但是最好在这里使用"<?xml.*?<rss[\\s\\S]*?</rss>"作为搜索字符串。

\\s匹配任何包含行终止符的空白字符, \\S匹配任何非空白字符。 两个都放在方括号中会导致匹配任何字符。

为了完整起见: [\\w\\W]也总是匹配任何字符。

您可以将其与(\\\\n)*结合使用。 必须添加一个额外的\\因为它是一个特殊字符。 另一种选择是在执行正则表达式之前执行replaceAll("\\\\n","")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM