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