[英]regex to match terms in multiple lines
我一直在使用正負前瞻正則表達式來匹配字符串中的出現,例如:
/^(?=.*term1)(?=.*term2)(?!.*term3).*$/
現在我有一個新的要求來跨多行匹配這些字符串。 似乎m
修飾符會匹配每一行的這些術語,而不是我所需要的。
我錯過了什么嗎? 還有其他解決方案嗎?
您可以使用此正則表達式在 Javascript 中跨行匹配:
/^(?=[^]*term1)(?=[^]*term2)(?![^]*term3)[^]*$/
在 JS 中, [^]
匹配任何字符,包括換行符。
如果不使用 JS 或想讓這個正則表達式可移植到其他風格,那么可以使用:
/^(?=[\D\d]*term1)(?=[\D\d]*term2)(?![\D\d]*term3)[\D\d]*$/
嘗試從正則表達式中刪除“^”和“$”,例如
/(?=.*term1)(?=.*term2)(?!.*term3).*/
"^" 表示行首,"$" 表示行尾,所以這只會匹配一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.