Regex 如何使用正则表达式为一个属性查找多个匹配项?

Regex 如何使用正则表达式为一个属性查找多个匹配项?,regex,Regex,我有一个表,表中的条目有属性名称,如“3000”。有些条目的每个属性有一个数字,但有些条目的某些属性有多个数字。例如,对于一个名为3000的属性,一个条目可能有一个值“ABC”和“DEF” 我想找到与3000属性相关的任何值,有三个值。。。ABC、DEF和GHI。当我提取所有属性信息时,我可以看到一个名为0-001的条目的多个值: ... ^3000:ABC, ^3000:DEF, ^3000:GHI ... 我使用下面的表达式,但它只返回第一个条目,而不返回其余条目 (attribute_l

我有一个表,表中的条目有属性名称,如“3000”。有些条目的每个属性有一个数字,但有些条目的某些属性有多个数字。例如,对于一个名为3000的属性,一个条目可能有一个值“ABC”和“DEF”

我想找到与3000属性相关的任何值,有三个值。。。ABC、DEF和GHI。当我提取所有属性信息时,我可以看到一个名为0-001的条目的多个值:

... ^3000:ABC, ^3000:DEF, ^3000:GHI ...
我使用下面的表达式,但它只返回第一个条目,而不返回其余条目

(attribute_list, "\\^3000:([^\\^]*),")" from myTable where entry_id="0-0001"

它只返回值“ABC”,但我希望它返回“ABC”、“DEF”和“GHI”。要实现这一点,我需要做些什么?

这将获得您的所有属性:

(?<=\^3000:)[^,\s]+
解释


  • lookbehind
    (?您的正则表达式与数据中的
    3rd
    值不匹配,因为它后面没有逗号,只有一个空格字符。我在这里使用带逗号或空格字符的否定

    \\^3000:([^, ]+)
    

    这将找到所有匹配项,但如果它不适用于您,则您需要在SQL调用中进行全局搜索。

    您使用的是哪种语言?谢谢,我明天回到办公室后必须试用。
    \\^3000:([^, ]+)