我有一个包含此数据的列varchar [25]:
数字的大小可能会从1位变为n位。 我需要能够拉出任何至少有一个正数的行
我在想像
这样的东西REGEXP '[^-,][0-9]+'
但是当88与正则表达式匹配时,这会拉-886
答案 0 :(得分:1)
你可能不需要正则表达式
COL not like '-%' AND COL not like '%,-%'
然而,这是存储到不正确的数据类型的坏例子,
拆分,
并存储到多行......您可以节省一些时间来处理类似这个问题的内容
答案 1 :(得分:1)
尝试使用:
"[^-\d]\d+\b"
如果我理解你的问题,这应该有效。
一个好的正则表达式参考表:http://www.regular-expressions.info/reference.html
答案 2 :(得分:1)
我能够找到最佳解决方案:
`COL` NOT LIKE '%-%'
我忘了提到该列可能还包含以下字词:
答案 3 :(得分:0)
尝试
REGEXP '[[:<:]][^-,][0-9]+[[:>:]]'
:<:
和:>:
部分表示字边界。
答案 4 :(得分:0)
^ \ B \ d + \ B $ 会给你正整数。
^ [^ - ] \ d +((([^ - ]?\ d +)))+ $ 将只给出所有值都是正整数的列表
对于任何正整数的列表(但所有有效整数为负或正)我认为这将检查: ^(( - \ d +,))+ [^ - ] \ d +((([^ - ] \ d +))|?(, - \ d +))+ $
这是正则表达式的绝佳网站: http://gskinner.com/RegExr/
我一直用它进行实时测试。