0

我需要创建一个找到以下模式的正则表达式:

= Head: Some text =

我试过这个:

^(?:[=]).*(?:[=])

但它也匹配这个(它不应该匹配):

== Hello Text 2 ==

那么我怎么能告诉正则表达式不匹配多次出现==

感谢您的回答。

4

2 回答 2

2

您可以使用否定字符类而不是.

^=[^=]*=$

[^=]*匹配任何字符,但“=”

$匹配字符串的结尾

在 Regexr 上查看

于 2013-04-22T08:38:21.963 回答
2

以下是相当可读的:

>>> s = '= Head: Some text ='
>>> t = '== Hello Text 2 =='
>>> re.match(r'=[ ](.*?)[ ]=', s).group(1)
'Head: Some text'
>>> re.match(r'=[ ](.*?)[ ]=', t).group(1)
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    re.match(r'=[ ](.*?)[ ]=', t).group(1)
AttributeError: 'NoneType' object has no attribute 'group'
于 2013-04-22T08:42:21.737 回答