出于某種原因,當我re.compile列出聯合正則運算式模式時,似乎有些模式有效,有些則無效。雖然無法弄清楚這里的問題。任何指導表示贊賞。
import re
creditcard_pattern = re.compile(r'''(
(CREDIT\s?CA?RD)|
((CARD|\bCC\b).*PA?YME?N?T?)|
(APPLECARD)|
WELLS FARGO.*(CARD|CC)|
(CITI.*(C?R?E?D?I?T CA?R?D))|
(CAPITAL ONE)|
AMERICAN EXPRESS|
(DISCOVER.*(?!.*1BANK))|
AMER?I?C?A?N?\s?E?XP?R?E?S?S?|
CHASE.*CARD|
(BA?N?K.*AME?RI?C?A?.*PMT)|
AMEX|
CITICORP CHOICE|
CITI (CARD|AUTO|PAYMENT)|
VISA PLATINUM|
BARCLAY.*CARD|
USAA FSB.*ONLINE PMT|
CITIBANK.*ONLINE PMT
)
''', flags=re.I | re.X )
測驗:
if creditcard_pattern.search('CARD PYMT'):
print('found')
#>> found
if creditcard_pattern.search('BARCLAY CARD'):
print('found')
#>> found
if creditcard_pattern.search('WELLS FARGO CARD'):
print('found')
#>> not found
if creditcard_pattern.search('CAPITAL ONE'):
print('found')
#>> not found
在https://regexr.com/ 中測驗模式時,我的模式似乎按預期作業......
uj5u.com熱心網友回復:
re.X的檔案說明:
模式中的空格會被忽略,除非在字符類中,或者前面有未轉義的反斜杠,或者在像 *?、(?: 或 (?P<...>.
因此,您可以轉義“CAPITAL ONE”中的單個空格,您的正則運算式中的相應行變為:
(CAPITAL\ ONE)|
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/354292.html
上一篇:正則運算式查找具有兩個字母的字串
