正则表达式:仅匹配字符出现1次

时间:2013-04-22 08:36:27

标签: python regex

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

= Head: Some text =

我试过了:

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

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

== Hello Text 2 ==

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

感谢您的回答。

2 个答案:

答案 0 :(得分:2)

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

^=[^=]*=$

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

$匹配字符串

的结尾

here on Regexr

答案 1 :(得分: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'