簡體   English   中英

正則表達式 - 匹配整個字符串除非

[英]Regex - Match Entire String Unless

我需要編寫一個正則表達式,它將匹配字符串中的所有內容,除非它中包含某個單詞。 以此字符串為例:

http://12.34.567.890/sqlbuddy

匹配所有內容的表達式是:

^.*$

...如果它包含單詞“sqlbuddy”,則需要對其進行修改以使其與字符串完全匹配。 我認為負面的前瞻會做到這一點,但那對我不起作用。

例如,我試過這個,這不起作用:

^(?!sqlbuddy).*$

我該怎么修改呢?

該示例不起作用,因為它假定sqlbuddy位於字符串的開頭。 您需要將其更改為以下內容,以便sqlbuddy可以出現在字符串中的任何位置:

^(?!.*sqlbuddy.*).*$ 

但是,如果你真的只想檢查你的字符串是否包含一個給定的單詞,那么也許"http://12.34.567.890/sqlbuddy".contains("sqlbuddy")就足夠了。

此外,這對我有用:字符串'sqlbuddy'的位置無關緊要。

^((?!sqlbuddy).)*$

...(對於其他人),如果您只想在[長]字符串的特定位置搜索(多個匹配的長文本),您可以使用:

first_part_of_string(?!.*sqlbuddy.*)second_part_of_string

或者,更寬容的:

first_part_of_string.*(?!.*sqlbuddy.*).*second_part_of_string

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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