C使用Python正则表达式进行预处理

时间:2011-03-30 17:03:13

标签: python regex

我之前从未使用过正则表达式,而且我正在努力理解它们。我有'define(__arch64__)'形式的字符串,我只想要__arch64__

import re  
mystring = 'define(this_symbol)||define(that_symbol)'  
pattern = 'define\(([a-zA-Z_]\w*)\)'  
re.search(mystring, pattern).groups()  
  

(无,无)

search返回'this_symbol''that_symbol'的内容是什么?

2 个答案:

答案 0 :(得分:2)

您的参数search()的顺序错误,应为:

re.search(pattern, mystring)

此外,反斜杠是python字符串中的转义字符(例如“\ n”将是包含换行符的字符串)。如果你想要文字后退,就像在正则表达式中一样,你必须用另一个反斜杠来转义它们。或者,您可以使用前面标有r的{​​{3}},不要将反斜杠视为转义字符:

pattern = r'define\(([a-zA-Z_]\w*)\)'

答案 1 :(得分:0)

您必须区分符号(和正则表达式组字符。此外,该模式在re.search中首先出现:

pattern = 'define\\(([a-zA-Z_]\w*)\\)'
re.search(pattern, mystring).groups()