此正则表达式模式匹配什么?

时间:2019-09-24 17:49:14

标签: python regex

regex = re.compile(r"\s*[-*+]\s*(.+)")

尤其是这一部分:\s*[-*+]

我要匹配此string

[John](person)is good and [Mary](person) is good too.

但是失败了。

\s*[-*+]的含义是否如下:

匹配一个可选空格,后跟一个字符:-*+

这是在Python。

1 个答案:

答案 0 :(得分:0)

模式\s*[-*+]\s*(.+)的意思是:

\s*-匹配零个或多个白蜡糖

[-*+]-匹配集合中的一个字符:-*+

(.+)-匹配任意一个或多个字符并将其存储在捕获组中(.表示任何字符和方括号表示捕获组)

在您的句子中,由于集合-*+中缺少任何字符,模式不匹配任何内容。

它将匹配,例如{p}中的* (person) is good too.

[John](person)is good and [Mary] * (person) is good too.

Demo

为了匹配名称及其描述,请使用\[([^\]]+)\]\(([^)]+)

说明:

\[-从字面上匹配[

([^\]]+)-匹配]中的一个或多个其他字符并将其存储在第一个captuirng组中

\]-从字面上匹配[

\(-从字面上匹配(

([^)]+)-匹配来自)

的一个或多个字符

Demo