gpt4 book ai didi

php - 具有双重否定匹配的正则表达式

转载 作者:搜寻专家 更新时间:2023-10-31 21:01:39 25 4
gpt4 key购买 nike

给定一系列字符串:

  • error.user
  • 成功
  • 成功.用户
  • 成功.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 Demo

此处 (?!error|.*\.user) 将在 error 位于开头或在输入中的任何位置找到 .user 时断言失败。

(?!\.*user) 在您的正则表达式中表示当输入有 0 个或多个点时仅在开始时后跟 user 时断言失败。

关于php - 具有双重否定匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40980711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com