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
我在 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