我在python中有一个字符串
x = "orange".
程序接受输入字符串。如果输入字符串与x的通配符模式匹配,则执行一些操作。 模式是
pattern = "#.orange.*"
#(hash) - 可以替换零个或多个单词。
*(星级) - 可以替代一个单词。
所以,如果我的输入字符串是" quick.orange.rabbit",那么它应该匹配。任何人都可以帮我在python中如何做到这一点? 我试过了 -
import re
input_str = input("enter string")
pattern = #.orange.*
p = re.compile(pattern)
if p.match(input_str):
# do something
提前致谢。
答案 0 :(得分:1)
我不确定我是否正确理解正则表达式的想法,但如果我是正确的,你想要匹配以下内容:
(零个或多个单词).orange。(恰好一个字)
现在我不知道哈希中的单词是用空格,句点分隔还是仅仅是单词之后的单词,但是这里有以下几种情况:
以空格分隔的哈希值
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&lt;&gt;)语法,您也可以执行以下操作
pattern = r"(\w+|\s)*\.orange\.\w+"
哪个匹配你的字符串,并告诉你它是否匹配,但你不能
match.group('hash')
获取哈希词。