Python正则表达式捕捉两种评论

标签 python regex

例子:

a = "bzzzzzz <!-- blabla --> blibli * bloblo * blublu"

我想捕获第一条评论。评论可能是

(<!-- .* -->) or (\* .* \*)

没关系:

re.search("<!--(?P<comment> .* )-->",a).group(1)

还有:

re.search("\*(?P<comment> .* )\*",a).group(1)

但是如果我想要其中一个或另一个发表评论,我已经尝试过类似的方法:

re.search("(<!--(?P<comment> .* )-->|\*(?P<comment> .* )\*)",a).group(1)

但是没用

谢谢

最佳答案

尝试条件表达式:

>>> for m in re.finditer(r"(?:(<!--)|(\*))(?P<comment> .*? )(?(1)-->)(?(2)\*)", a):
...   print m.group('comment')
...
 blabla
 bloblo

关于Python正则表达式捕捉两种评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531253/

相关文章:

python - 如何将 startTLS 与 ldaptor 一起使用?

python - 有没有办法检查列表是否在 np.array 中?

javascript - 如何用正则表达式模式替换字符串中的单词,但有异常(exception)

javascript - js正则字符集包括 ""或 ""

java - 在 Haxe 正则表达式中是否有等同于 Java 的\p{Punct} 的东西?

regex - 如何从正则表达式电子邮件模式中排除图像?

python - 如何读取pandas dataframe中mongodb导出的Json

python - 如何将 numpy 数组乘以 numpy 矩阵?

regex - 递归地在 Linux 内核源代码树中查找函数定义

python - 尝试在column_property中使用float()