我有以下我不理解的正则表达式(Python)。为什么它也与第一个交替不匹配?
正则表达式(间隔以便更好地理解):
(?:
\$\{
(?P<braced>
[_a-zA-Z][a-zA-Z0-9]*(?::[_a-zA-Z][_a-zA-Z0-9]*)+
)
\}
)
| ### SECOND ALTERNATION ###
(?:
\$
(?P<named>
[_a-zA-Z][a-zA-Z0-9]*(?::[_a-zA-Z][_a-zA-Z0-9]*)+
)
)
测试字符串:
asdasd $asd:sd + ${asd123:asd} $HOME $$asd
搭配的东西:
asdasd $asd:sd + ${asd123:asd} $HOME $$asd
根据上面的正则表达式模式,也应该出现第一个交替,即:
${asd123:asd}
看来我不太明白交替模式?