Regex 检查字符串的前两个字符是否为a-Z字母
我的表中有一列包含汽车牌照号码(在源数据中没有以任何方式验证) 要使许可证号有效,前两个字符必须是大写字母(A-Z) 我尝试在WHERE子句中添加以下内容:Regex 检查字符串的前两个字符是否为a-Z字母,regex,oracle,Regex,Oracle,我的表中有一列包含汽车牌照号码(在源数据中没有以任何方式验证) 要使许可证号有效,前两个字符必须是大写字母(A-Z) 我尝试在WHERE子句中添加以下内容: AND REGEXP_LIKE(SUBSTR(auto.license, 1, 2), '[A-Z]') …但我仍然在输出数据集中得到无效的组合 有什么帮助吗?怎么样 AND REGEXP_LIKE(SUBSTR(auto.license, 1, 2), '[A-Z][A-Z]') 那怎么办 AND REGEXP_LIKE(SUBSTR
AND REGEXP_LIKE(SUBSTR(auto.license, 1, 2), '[A-Z]')
…但我仍然在输出数据集中得到无效的组合
有什么帮助吗?怎么样
AND REGEXP_LIKE(SUBSTR(auto.license, 1, 2), '[A-Z][A-Z]')
那怎么办
AND REGEXP_LIKE(SUBSTR(auto.license, 1, 2), '[A-Z][A-Z]')
你的模式
AND REGEXP_LIKE(SUBSTR(auto.license, 1, 2), '[A-Z]')
仅检查前两个字符中是否有一个A-Z,而不是两个字符都是
您不需要额外的子字符串步骤,可以执行以下操作:
AND REGEXP_LIKE(auto.license, '^[A-Z]{2}')
插入符号^
锚定到字符串的开头,而{2}
与前面的模式匹配两次。如果要匹配除英语以外的其他语言(或字符集?)中的大写字符,这些语言的大写字母范围不同,并且不只是覆盖ASCII范围a-Z,则可以使用:
AND REGEXP_LIKE(auto.license, '^[[:upper:]]{2}')
,和。您的模式
AND REGEXP_LIKE(SUBSTR(auto.license, 1, 2), '[A-Z]')
仅检查前两个字符中是否有一个A-Z,而不是两个字符都是
您不需要额外的子字符串步骤,可以执行以下操作:
AND REGEXP_LIKE(auto.license, '^[A-Z]{2}')
插入符号^
锚定到字符串的开头,而{2}
与前面的模式匹配两次。如果要匹配除英语以外的其他语言(或字符集?)中的大写字符,这些语言的大写字母范围不同,并且不只是覆盖ASCII范围a-Z,则可以使用:
AND REGEXP_LIKE(auto.license, '^[[:upper:]]{2}')
,和。我做了一些测试,但是这里的查询返回
Ab
,你知道为什么吗?“[a-Z]{2}”和[a-Z][a-Z]
之间也有区别吗?看起来正确的答案应该是'^[:upper:]{2}')
,奇怪的部分是[a-Z]
不区分大小写@JuanCarlosOropeza-我提到过使用:upper:
来表示其他语言(英语除外,我没有具体说明!)。该站点默认为德语。看见(另外,不,在[A-Z]{2}
和[A-Z][A-Z]
之间没有真正的区别,只是避免重复模式-当然,使用更高的数字会产生更大的差异)我做了一些测试,但这里的查询返回Ab
,你知道为什么吗?“[a-Z]{2}”和[a-Z][a-Z]
之间也有区别吗?看起来正确的答案应该是'^[:upper:]{2}')
,奇怪的部分是[a-Z]
不区分大小写@JuanCarlosOropeza-我提到过使用:upper:
来表示其他语言(英语除外,我没有具体说明!)。该站点默认为德语。看见(同样,没有,在[A-Z]{2}
和[A-Z][A-Z]
之间没有真正的区别,只是避免重复模式-当然,数字越大,差异越大)