Bet*_*ish 4 python regex mysql
我正在编写一个 python 正则表达式,它仅匹配由字母、数字和一个或多个问号组成的字符串。
例如,regex1: ^[A-Za-z0-9?]+$返回带或不带的字符串?
我想要一个 regex2 匹配诸如ABC123?A, 1AB?CA?, ?2ABCD, ???, 123?但不在ABC123, ABC.?1D1, ABC(a)?1d
mysql 上的表达式,我这样做了并且它有效:
select *
from (
select * from norm_prod.skill_patterns
where pattern REGEXP '^[A-Za-z0-9?]+$') AS XXX
where XXX.pattern not REGEXP '^[A-Za-z0-9]+$'
Run Code Online (Sandbox Code Playgroud)
像这样的事情怎么样:
^(?=.*\?)[a-zA-Z0-9\?]+$
Run Code Online (Sandbox Code Playgroud)
这(?=.*\?)是一个正向前瞻,它告诉正则表达式匹配的开始后面应该跟有 0 个或多个字符,然后是 - 即,匹配中?应该有一个。
匹配字符类 ie 中给定的字符、来自 的数字以及问号的一次或多次出现。?[a-zA-Z0-9\?]+a-zA-Z0-9?
总而言之,正则表达式首先检查要匹配的字符串中的某个位置是否有问号。如果是,则与上面提到的字符匹配。如果?不存在,或者存在一些外来字符,则该字符串不匹配。