简化正则表达式

时间:2014-05-04 14:03:12

标签: python regex regex-greedy

我想简化这个正则表达式(myExpr):

\s+#[A-z][A-Za-z0-9-_]+|^\s*#[A-z][A-Za-z0-9-_]+

所以我写了这个:

[\s+|^\s*](#[A-z][A-Za-z0-9-_]+)

中使用它
re.findall(myExpr,string)

第一个正则表达式工作但不是最后一个。我在第二个中犯了什么错误?

1 个答案:

答案 0 :(得分:2)

您需要括号(…)而不是括号[…],因为后者表示字符类:

(\s+|^\s*)(#[A-Za-z][A-Za-z0-9-_]+)

您也可以使用此a+相当于aa*

(^|\s)\s*(#[A-Za-z][A-Za-z0-9-_]+)