【发布时间】: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