试着做一个简单的正则表达式

时间:2016-05-06 05:16:50

标签: python regex

我想使用正则表达式提取(abc)(def) 我最终得到了下面的错误

导入重新

def main():
    str = "-->(abc)(def)<--"

match = re.search("\-->(.*?)\<--" , str).group(1)

print match

错误是:

Traceback (most recent call last):    
  File "test.py", line 7, in <module>    
    match = re.search("\-->(.*?)\<--" , str).group()    
  File "/usr/lib/python2.7/re.py", line 146, in search    
    return _compile(pattern, flags).search(string)    
TypeError: expected string or buffer

1 个答案:

答案 0 :(得分:1)

修正:

import re
def main():
    my_string = "-->(abc)(def)<--"
    match = re.search("\-->(.*?)\<--" , my_string).group(1)
    print match
    # (abc)(def)

main()

注意,我将str重命名为my_string(不要将标准库函数用作自己的变量!)。也许你仍然可以通过外观优化你的正则表达式,懒惰的星(.*?)有时会变得非常无效。