正则表达式python`r'*(.:?!)*'`
我想接受包含以下字符的单词:正则表达式python`r'*(.:?!)*'`,python,regex,Python,Regex,我想接受包含以下字符的单词:。:?!' 我尝试将此作为模式:r'*(.|::|?|!)*”但不起作用 如何使用pythonre实现这一点 我希望运行的代码如下所示: import re pattern = r'*(.|:|?|!)*' word = '.Flask' match = re.match(pattern, word) if match: print('yes') 例如,我想接受这些词:“.flask”,“flask.”,“!烧瓶“,”烧瓶!' 甚至是非ascii字符。所以我
。:?!'代码>
我尝试将此作为模式:r'*(.|::|?|!)*”
但不起作用
如何使用pythonre
实现这一点
我希望运行的代码如下所示:
import re
pattern = r'*(.|:|?|!)*'
word = '.Flask'
match = re.match(pattern, word)
if match:
print('yes')
例如,我想接受这些词:“.flask”
,“flask.”
,“!烧瓶“
,”烧瓶!'代码>
甚至是非ascii字符。所以我想也包括这些词:。日本語代码>,日本語.代码>
这就是我想使用*
符号的原因。如果您想匹配以这些字符之一开头或结尾的单词,此正则表达式应该适合您的需要:
pattern = r'[.:?!][^ ]*|[^ ]*[.:?!]'
或者更好地使用单词边界:
pattern = r'\b[.:?!][^ ]*\b|\b[^ ]*[.:?!]\b'
解释:
[.:?!][^]*
匹配以[.:?!]
开头的单词,后跟除空格以外的所有字符
[^]*[.:?!]
匹配以任何字符开头的所有单词,以[.:?!]字符结尾的空白除外。
字符
\b
匹配单词边界。在发布问题后,您将继续包括条件。这使得目前发布的答案无效。对不起,我会小心处理:(这些字符应该在一行的开头还是结尾?是的,必须包括其中一个字符谢谢@miindlek和所有帮助我的人!