Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在给定模式之后,匹配符号之间的模式_Python_Regex_Search_Pattern Matching - Fatal编程技术网

Python 在给定模式之后,匹配符号之间的模式

Python 在给定模式之后,匹配符号之间的模式,python,regex,search,pattern-matching,Python,Regex,Search,Pattern Matching,我想找到一个字符串的第一次出现,在另一个字符串之后,在某个模式之间。我正在解析的文档不是xml,而是具有类似的开始/结束规则。我要看的例子是: ...b.filext", "{xxxxx-xxx-xxx-xxx-xxxxxxxxxxx}" 我试图得到{和}之间的字符串,就在vcxproj出现之后,每次它出现在文档中。 我尝试了以下方法,但得到的列表中没有: my_list=[] for line in text.split('.vcxproj'): if '{' in line:

我想找到一个字符串的第一次出现,在另一个字符串之后,在某个模式之间。我正在解析的文档不是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))
my_list=[]
对于text.split('.vcxproj')中的行:
如果行中有“{”:
my_list.append(re.match(r)(?仅匹配字符串开头。请尝试
re.search
。或者,将循环替换为。

仅匹配字符串开头。尝试
re.search
。或者,将循环替换为。

如何:

    re.findall(r"vcxproj.*?\{(.*?)\}", text)
那么:

    re.findall(r"vcxproj.*?\{(.*?)\}", text)

请注意,如果语法不是递归的(要匹配的文本也可以作为子字符串出现),它与XML不同。正是这种递归性质使得正则表达式不适合XML解析。请注意,如果语法不是递归的(要匹配的文本也可以作为子字符串出现),它不像XML。正是这种递归性质使得正则表达式不适合XML解析。谢谢,我得到了匹配项。但它们看起来像:而不是实际的字符串…我没想到?@user1217150:
re.search
返回一个
match
对象。为了访问匹配的字符串,必须调用
.group()
组()在匹配对象上。@ USE1217150:阅读。到目前为止,所有的问题都在那里回答。考虑选择A,这样你就可以收到…的通知。你的关于匹配对象的问题是一个新问题的边缘。除了请求澄清之外,评论不应该被用来问另外的问题。一个问题不需要阅读评论就可以理解。另一个问题是,问答网站,而不是论坛,评论不是有意的(也不是很合适的)用于讨论。如果您有超出最初提问范围的问题,请首先检查该问题是否已被提问,如果尚未提问,请发布新问题……如果您有问题中尚未描述的其他要求,请编辑该问题,而不是发布评论。谢谢,我得到了匹配项。但它们看起来像:In读取实际字符串…我没想到?@user1217150:
re.search
返回一个
match
对象。要访问匹配的字符串,必须调用
.group()
.groups()在匹配对象上。@ USE1217150:阅读。到目前为止,所有的问题都在那里回答。考虑选择A,这样你就可以收到…的通知。你的关于匹配对象的问题是一个新问题的边缘。除了请求澄清之外,评论不应该被用来问另外的问题。一个问题不需要阅读评论就可以理解。另一个问题是,问答网站,而不是论坛,评论不是有意的(也不是很合适的)用于讨论。如果您有超出最初提问范围的问题,请首先检查该问题是否已被提问,如果尚未提问,请发布新问题……如果您有问题中尚未描述的其他要求,请编辑该问题,而不是发布评论。