我有一个表格,其条目的属性名称如“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”。我需要做些什么来实现这个目标?
答案 0 :(得分:1)
这将获得您的所有属性:
(?<=\^3000:)[^,\s]+
请参阅demo。
输出:ABC
,DEF
,GHI
如果您还想返回^3000
,请使用此正则表达式:
\^3000:[^,\s]+
<强>解释强>
(?<=\^3000:)
声称前面的内容是^3000:
[^,\s]+
匹配一个或多个既不是逗号也不是空白字符的字符请参阅demo。
<强>参考强>
答案 1 :(得分:1)
您的正则表达式与数据中的3rd
值不匹配,因为后面没有逗号,只有空格字符。我会在这里用逗号或空格字符来否定。
\\^3000:([^, ]+)
这将找到所有匹配但如果它不适合您,那么您需要在SQL调用中进行全局搜索。