我尝试在一个模式上使用python regex,该模式有两组可选字符,它们可能存在,也可能不存在。下面是我想要完成的。你知道吗
h becomes a when h is preceded by o but can also be preceded by a colon (:)
following the o and then maybe followed by f,y,r (f|y|r)
所以这个规则将应用于以下模式。你知道吗
o:fh -> o:fa
ofh -> ofa
o:h -> o:a
oh -> oa
下面是我正在尝试的。你知道吗
re.sub(ur"o[(:|)][(f|y|r)]h", "o\1\2a", word);
我真的很纠结于分组和两组可选字符:
和(f|y|r)
,它们可能存在也可能不存在。非常感谢您的帮助。谢谢!你知道吗
语法不正确,您试图在character classes内部使用capturing groups。在最简单的形式中,它列出了可以在方括号内匹配的字符(匹配列表中的任何字符)
您可以简单地使用一个组,跟随您希望与^{} 一起可选的字符
说明:
您可以使用regex模块,它支持可变长度的lookback。你知道吗
Regex元素是可选的,在它们后面加上
?
,而不是用括号括起来。正确的表达方式是:注意,替换字符串必须是原始的(
r" "
),这样\1
就不会被解释为字符0x01。你知道吗相关问题 更多 >
编程相关推荐