符号之间的匹配模式,给定模式后
我想查找一个字符串的第一个匹配项,在某个其他字符串之后,以及某个特定模式之间。我解析的文档不是xml,但具有类似的开始/结束规则。什么的例子,我会在看:符号之间的匹配模式,给定模式后
...b.filext", "{xxxxx-xxx-xxx-xxx-xxxxxxxxxxx}"
,我试图让之间的{和}的字符串,一vcxproj的发生之后,每次它发生在文件中的时间。 我尝试以下,但我得到无列表:
my_list=[]
for line in text.split('.vcxproj'):
if '{' in line:
my_list.append(re.match(r"(?<=\{)(.*?)(?=\})", line))
我试图改变我的表情,但没有成功。帮帮我 ?谢谢。
re.match
只匹配字符串的开头。尝试re.search
。或者,将环路替换为re.findall
。
谢谢,我正在比赛。但他们看起来像:<_sre.sre_match>而不是实际的字符串...我没有想到这一点? – Thalia 2012-04-02 18:38:27
@ user1217150:'re.search'返回一个'match'对象。为了访问匹配的字符串,必须在匹配对象上调用'.group()'或'.groups()'。 – 2012-04-02 18:41:36
@ user1217150:阅读[re documentation](http://docs.python.org/library/re.html)。到目前为止,您的所有问题都在那里得到解答考虑选择一个[有意义的用户名](http://tinyurl.com/so-hints),所以你会收到[@replies]的通知(http://meta.stackexchange.com/q/43019/133817)。 – outis 2012-04-02 18:48:33
注意,如果语法不能递归(文字匹配,也可能发生作为一个子字符串),它不是像XML。正是这种递归性质使正则表达式不适合XML解析。 – outis 2012-04-02 18:33:28