Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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_Regex Group - Fatal编程技术网

Regex 正则表达式匹配两个单词并获取所有匹配项

Regex 正则表达式匹配两个单词并获取所有匹配项,regex,regex-group,Regex,Regex Group,我正在使用正则表达式清理包含HTML的XML文件 有些文件包含多个style-元素,我想将它们全部删除,并删除它们之间的内容。例如: 我正在使用带/s参数的以下正则表达式 (样式)。*(\/STYLE) 问题是这个正则表达式将匹配(#1)和最后一个(#3)之间的所有内容 我只想匹配组、和元素。如何实现这一点?您可以尝试使用?操作符使正则表达式非贪婪: (<STYLE>).*?(<\/STYLE>) ^^^

我正在使用正则表达式清理包含HTML的XML文件

有些文件包含多个
style
-元素,我想将它们全部删除,并删除它们之间的内容。例如:

我正在使用带/s参数的以下正则表达式

(样式)。*(\/STYLE)
问题是这个正则表达式将匹配
#1
)和最后一个
#3
)之间的所有内容


我只想匹配
元素。如何实现这一点?

您可以尝试使用
操作符使正则表达式非贪婪:

(<STYLE>).*?(<\/STYLE>)
                ^^^ use ? to tell the regex engine to stop at the first closing tag
此处演示:


您可以尝试使用
操作符使正则表达式非贪婪:

(<STYLE>).*?(<\/STYLE>)
                ^^^ use ? to tell the regex engine to stop at the first closing tag
此处演示:


太简单了!谢谢:)太简单了!谢谢:)您已经接受了一个解决方案,但您确实意识到这只会删除第一个样式和组,即,您不能使用它设置第二个(以其当前形式)@grail-接受的解决方案在使用/sg标志时实际上工作正常。您已经接受了一个解决方案,但确实意识到这只会删除第一个样式和组,您不能使用它来设置第二个@grail(以其当前形式)-当使用/sg标志时,接受的解决方案实际上可以正确地工作。