你能否告诉我是否正确地将SQL查询转换为正则表达式?
1) SQL:
CLASSIFICATION_CODE not like '24%'
REGEX:
CLASSIFICATION_CODE <> '([^2]|2[^4])'
2) SQL:
TYPE_CODE NOT LIKE 'DKRI%' OR TYPE_CODE NOT LIKE 'KRI%' OR TYPE_CODE <> '355' OR TYPE_CODE <> '303'
REGEX:
TYPE_CODE <> '([^DK3]|D[^K]|DK[^R]|DKR[^I]|K[^R]|KR[^I]|3[^50]|30[^3]|35[^5]'
提前致谢,
一个。
答案 0 :(得分:1)
没有。正则表达式匹配任何位置,但like
始终是完整字符串。所以你需要锚定正则表达式:
regexp_like(CLASSIFICATION_CODE, '^([^2]|2[^4])'
虽然,我会把它写成:
not regexp_like(CLASSIFICATION_CODE, '^24')
你的第二个更简单:
CLASSIFICATION_CODE IS NOT NULL
或:
regexp_like(CLASSIFICATION_CODE, '.')
我可以推测你真的打算AND
在条件之间,但是OR
,任何字符串都会匹配。