【问题标题】:Regex true only if string fully contains various matches仅当字符串完全包含各种匹配项时,正则表达式才为真
【发布时间】:2015-02-26 23:01:22
【问题描述】:

我正在尝试编写一个在三个条件下匹配字符串的正则表达式:

1) 整个字符串匹配模式中定义的全部或部分捕获组

2) 捕获组不必按照它们在模式中出现的顺序定义

3) 模式可以有未知数量的在字符串中找不到的捕获组

所以一些包含以下捕获组的 RegEx...

(,101,)|(,10,)|(,203,)|(,542,)

我希望 RegEx 匹配以下内容...

,203,10,101,

...因为字符串的每一位都以某种方式匹配。

但我不希望它匹配这个字符串...

,203,684,10,

...因为 ,684 不是指定的组之一。

这最终将输入到 SQL 语句中。所以我可能会做与我所说的完全相反的事情,然后让我的 SQL 查询不是 REGEX。所以本质上是双重否定。

【问题讨论】:

  • (,101|,10|,203|,542)+, ?
  • 不。这将匹配如果:,203,684,10,
  • 这个数据结构从何而来?那些听起来像元信息,应该以标准化存储开始?
  • 它来自我的天才大脑@CBroe 开发的代码。还要记住,这是问题的简化版本。真实的东西看起来并不像这样。所以不要试图过度思考我是如何走到这一步的。
  • “所以不要过度思考我是如何走到这一步的”——我认为问题本身可能到目前为止还没有被充分考虑……@ 987654321@?

标签: regex


【解决方案1】:

那么……这就是你要找的吗?

 /^,(101,|10,|203,|542,)+$/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多