簡體   English   中英

具有雙重負匹配的正則表達式

[英]Regex with double negative matches

給定一系列字符串:

  • error.user
  • 成功
  • success.user
  • success.admin

我想寫一個正則表達式,它將匹配任何不以error開頭的東西,並且它也沒有.user 所以對於這個列表, successsuccess.admin

到目前為止我得到的是:/ /^((?!error)\\w*)((?!\\.*user)\\w*)/

第一部分: ((?!error)\\w*)工作正常,並將匹配縮小到只是以success開始的字符串。 由於某種原因,第二部分: ((?!\\.*user)\\w*)正在做什么都沒有。 我認為第一部分匹配太多了。

我在PHP / PCRE中這樣做
這是我的regex101.com鏈接: https ://regex101.com/r/l2sZru/1

你需要像這樣修復你的負面正則表達式:

^(?!error|.*\.user)[\w.]+$

RegEx演示

這里(?!error|.*\\.user) .user (?!error|.*\\.user)如果error在開始時或者如果在輸入中的任何地方找到.user`將斷言失敗。

正則表達式中的(?!\\.*user)表示當輸入具有0個或更多DOT時斷言失敗,僅在開始時跟隨user

暫無
暫無

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

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