簡體   English   中英

正則表達式匹配多行中的術語

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM