繁体   English   中英

Python中的通配符匹配

[英]Wildcard match in python

我在python中有一个字符串

x =  "orange".

该程序接受输入字符串。如果输入字符串与x的通配符模式匹配,则执行一些操作。 模式是

pattern = "#.orange.*" 

#(哈希)-可以替代零个或多个单词。

*(星号)-可以完全替换一个单词。

因此,如果我的输入字符串是“ quick.orange.rabbit”,则它应该匹配。 谁能帮我在python中做到这一点? 我努力了 -

import re
input_str = input("enter string")
pattern = #.orange.*
p = re.compile(pattern)
if p.match(input_str):
   # do something

提前致谢。

不知道我是否正确理解了Regex的想法,但是如果我是正确的,则需要匹配以下内容:
(零个或多个字)橙色(恰好一个字)

现在,我不知道哈希中的单词是由空格,句点分隔还是只是一个接一个的单词,但是以下几种情况:

哈希词,以空格分隔

pattern = r"(?P<hash>(\w+|\s)*)\.(?P<orange>orange)\.(?P<star>\w+)"

句点分隔的哈希词

pattern = r"(?P<hash>(\w+|\.)*)\.(?P<orange>orange)\.(?P<star>\w+)"

彼此紧紧地散列单词

pattern = r"(?P<hash>(\w*))\.(?P<orange>orange)\.(?P<star>\w+)"

如果您不想使用(?P <>)语法,也可以执行以下操作

pattern = r"(\w+|\s)*\.orange\.\w+"

哪个将与您的字符串匹配,并告诉您是否匹配,但随后您将无法执行

match.group('hash')

获取哈希词。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM