【发布时间】:2021-07-16 22:27:28
【问题描述】:
我正在尝试检索括号中的 5 个数字/字母的每个序列,就像这个例子一样:
accuracy of action - [1232d, 74294, qw23t, 23d45, 76wer, 12874] march
我想从中提取1232d 74294 qw23t 23d45 76wer 12874
我知道只提取方括号中的单个 5 位序列我可以做到 \[[a-z0-9 ]{5,7}\] 但我不知道如何检索各种 5 位序列。
【问题讨论】:
-
看起来您只是想从括号中提取所有连续的“单词”,对吧?或者是否有任何你不想提取的“词”?比如,可以有
accuracy of action - [1232d, 76wer111111111, 12874] march吗?然后,你需要提取76wer111111111吗?只是澄清一下,既然你说你想得到“5位数字”,但1232d不是数字词,它包含一个字母。 -
嘿,谢谢你的回答,我实际上想要 5 个字母和数字的所有连续序列。所以基本上我想要方括号内的所有内容
-
试试
SELECT regexp_extract_all(col, '(?:\G(?!^),\s*|\[)(\w+)(?=[^\]\[]*])', 1);,见this regex demo。 -
您的数据是否按预期工作?
-
嘿,是的,它确实有效,但我正在尝试找出一种方法,现在将数字/字母序列分成不同的行。所以基本上我想要 1 行 1 '1232d' 没有方括号和逗号