Regex 正则表达式:跳过/忽略模式
鉴于以下字符串嵌入到文本中,如何提取整行内容,但不在内部“”上匹配Regex 正则表达式:跳过/忽略模式,regex,Regex,鉴于以下字符串嵌入到文本中,如何提取整行内容,但不在内部“”上匹配 编辑: 更具体地说,我们需要处理下面两个用例,其中“type”有或没有“”字符 第1组:“h:测试” 第2组:'type=“yippie”'-或-'type=“yippie”'(即“>”或“/>”之前的剩余内容) 到目前为止,我有一些类似的东西,但是它有点偏离第2组在第一个“>”处的停止方式。调整第2组条件的第一部分 (<([a-zA-Z0-9_:-]+)([^>"]*|[^>]*?)\s*(/)?&g
编辑:更具体地说,我们需要处理下面两个用例,其中“type”有或没有“”字符
第1组:“h:测试”
第2组:'type=“yippie”'-或-'type=“yippie”'(即“>”或“/>”之前的剩余内容)
到目前为止,我有一些类似的东西,但是它有点偏离第2组在第一个“>”处的停止方式。调整第2组条件的第一部分
(<([a-zA-Z0-9_:-]+)([^>"]*|[^>]*?)\s*(/)?>)
(“]*|[^>]*?)\s*(/)?>)
谢谢你的帮助。试试这个:
<([:\w]+)(\s(?:"[^"]*"|[^/>"])+)/?>
示例用法(Python):
>x=''
>>>检索(“”,x).groups()
('h:test','type=“yippie”'))
另外请注意,如果您的文档是HTML或XML,那么您应该使用HTML或XML解析器,而不是尝试使用正则表达式进行解析。看起来您是在尝试使用正则表达式解析XML/HTML。我想说,您的方法从根本上是错误的。足够高级的正则表达式与XML解析器并非没有区别。Afte总之,如果您需要解析:
<test type="yippie<inner\"text\"_with_quotes,_literal_slash_and_quote\\\">" />
“/>
此外,您可能需要将内部转义为
和
出于不应使用正则表达式解析XML的进一步原因,我只能接受这个更好的答案:
是的,你在上面。我本应该更清楚、更完整。我需要对匹配的标签名和剩余的批次进行分组。看上面。我希望我能。现有的实现迫使我采取行动。
<([:\w]+)(\s(?:"[^"]*"|[^/>"])+)/?>
>>> x = '<h:test type="yippie<innertext>" />'
>>> re.search('<([:\w]+)(\s(?:"[^"]*"|[^/>"])+)/?>', x).groups()
('h:test', ' type="yippie<innertext>" ')
<test type="yippie<inner\"text\"_with_quotes,_literal_slash_and_quote\\\">" />