我正在撰寫一個 python 正則運算式,它只匹配由問號組成的字串,[A-Za-z0-9]并且?問號可以存在于字串中的任何位置。這里?應該在字串中。
例如,regex1: ^[A-Za-z0-9?] $回傳帶或不帶的字串?
ABC123?A, 1ABCA?, ?2ABCD我想要一個回傳但不在mysql 上的 regex2 ABC123, ABC.?1D1, ABC(a)?1d
,我這樣做了,它可以作業:
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] $'
uj5u.com熱心網友回復:
像這樣的東西怎么樣:
^(?=.*\?)[a-zA-Z0-9\?] $
正如您在 regex101.com 上看到的那樣
解釋
這(?=.*\?)是一個積極的前瞻,它告訴正則運算式匹配的開始后面應該跟著 0 個或更多字符,然后是?- 即,匹配中應該有一個?地方。匹配字符類中給出的字符的一次或多次出現,即
、中的數字和問號。[a-zA-Z0-9\?] a-zA-Z0-9?
總之,正則運算式首先檢查要匹配的字串中某處是否有問號。如果是,則它與上述字符匹配。如果?不存在,或者有一些外來字符,則字串不匹配。
uj5u.com熱心網友回復:
您可以使用一個或多個問號驗證字母數字字串
where pattern REGEXP '^[A-Za-z0-9]*([?][A-Za-z0-9]*) $'
請參閱正則運算式演示。
詳情:
^- 字串的開始[A-Za-z0-9]*- 零個或多個字母或數字([?][A-Za-z0-9]*)- 一個或多個?字符重復,然后是零個或多個字母或數字$- 字串結束。
如果您打算將此應用于任何 Unicode 字串,請考慮使用 POSIX 字符類:
where pattern REGEXP '^[[:alnum:]]*([?][[:alnum:]]*) $'
where[[:alnum:]]匹配任何字母和數字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/486622.html
下一篇:下拉串列問題
