SQLite 正则表达式正则表达式按数字获取精确单词

SQLite regular Expressions regex get exact word by number

我在 sqlite 1 列中有如下字符串:

1a 2B 3c 354 AfS 151 31s2fef 1fs31 3F1e2s 84f64e 45fs

space 分隔,x 个字符 0-9,a-z,A-Z,可能有标点符号我不确定,但肯定是 space 分隔。

我正在尝试制作一个正则表达式,以便我可以按字数查询数据库。基本上,如果我想在示例中获得第 6 个 "word",我会寻找:

151

所以我尝试创建一个正则表达式,如果第 N 个单词 = 151,return 我就是那一行。

这是我目前所知道的。

SELECT * FROM table1 WHERE column1 REGEXP ^((?:\S+\s+){1}){6}

不幸的是,这给了我第一个到第六个词,但我真的想像上面的例子一样精确定位第 6 个词。

另外,我在想这样可以节省数据库空间,我可以去掉白色 space,我只需要知道如何计算字符串中的特定字符数也想不通。

感谢帮助,之前没写过正则表达式

使用以下正则表达式

^([^\s]+\s){6}(.*?)(\s|$)

这个必须return151,你可以把{6}改成你的号码来匹配字符串。

如果你只需要匹配,就不需要非捕获组。只需匹配一个非 space + space 组 5 次,然后匹配 151.

^(\S+\s+){5}151