[英]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.