簡體   English   中英

正則表達式python`r'*(。|:| ?? !!)*'`

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM