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
Regex 正则表达式:跳过/忽略模式_Regex - Fatal编程技术网

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\\\">" />