[英]Clojure multiline regular expression
我正在尝试测试一个字符串的基本html模式,虽然我使用m(多线)修饰符,它只适用于字符串是1-liner
(re-find #"(?im)^<html>.*<body>.*</body>.*</html>" c))
失败:
"<html> <body> sad </body>
</html>"
作品:
"<html> <body> sad </body> </html>"
我究竟做错了什么?
您需要使用(?s)
“dotall模式” 开关 。
例:
user=> (re-find #"\d{3}.\d{3}" "123\n456")
nil
user=> (re-find #"(?s)\d{3}.\d{3}" "123\n456")
"123\n456"
(?m)
开关被看似命名 - 它改变了^
和$
anchors的作用,允许它们分别匹配行首和行尾 - 这不是你想要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.