regex = re.compile(r"\s*[-*+]\s*(.+)")
尤其是这一部分:\s*[-*+]
我要匹配此string
:
[John](person)is good and [Mary](person) is good too.
但是失败了。
\s*[-*+]
的含义是否如下:
匹配一个可选空格,后跟一个字符:-
,*
,+
这是在Python。
答案 0 :(得分:0)
模式\s*[-*+]\s*(.+)
的意思是:
\s*
-匹配零个或多个白蜡糖
[-*+]
-匹配集合中的一个字符:-
或*
或+
(.+)
-匹配任意一个或多个字符并将其存储在捕获组中(.
表示任何字符和方括号表示捕获组)
在您的句子中,由于集合-*+
中缺少任何字符,模式不匹配任何内容。
它将匹配,例如{p}中的* (person) is good too.
[John](person)is good and [Mary] * (person) is good too.
为了匹配名称及其描述,请使用\[([^\]]+)\]\(([^)]+)
说明:
\[
-从字面上匹配[
([^\]]+)
-匹配]
中的一个或多个其他字符并将其存储在第一个captuirng组中
\]
-从字面上匹配[
\(
-从字面上匹配(
([^)]+)
-匹配来自)