[英]regular expression python `r'*(.|:|?|!)*'`
我想接受包含以下字符的單詞: '.:?!'
我嘗試將其作為模式: r'*(.|:|?|!)*'
但不起作用。
我如何使用python re
實現此功能。
我想運行的代碼是這樣的:
import re
pattern = r'*(.|:|?|!)*'
word = '.Flask'
match = re.match(pattern, word)
if match:
print('yes')
例如,我要接受以下單詞: '.flask'
, 'flask.'
, '!flask'
, 'flask!'
....
甚至是非ASCII字符。 所以我也想包括這些詞: .日本語
, 日本語.
這就是為什么我想使用*
符號。
如果要匹配以以下字符之一開頭或結尾的單詞,則此正則表達式應符合您的需求:
pattern = r'[.:?!][^ ]*|[^ ]*[.:?!]'
甚至與單詞邊界更好:
pattern = r'\b[.:?!][^ ]*\b|\b[^ ]*[.:?!]\b'
Explenation:
[.:?!][^ ]*
匹配以[.:?!]
開頭的單詞,后跟除空格以外的所有字符。
[^ ]*[.:?!]
匹配以任何字符開頭的所有單詞,除了以[.:?!]
字符結尾的空格之外。
\\b
匹配單詞邊界。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.