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 正则表达式以匹配<;之间的所有字符;h1>;标签_Regex_Sublimetext3_Sublimetext2 - Fatal编程技术网

Regex 正则表达式以匹配<;之间的所有字符;h1>;标签

Regex 正则表达式以匹配<;之间的所有字符;h1>;标签,regex,sublimetext3,sublimetext2,Regex,Sublimetext3,Sublimetext2,我正在使用sublime文本2编辑器。我想使用正则表达式来匹配所有h1标记之间的所有字符 到现在为止,我用的是这样的 <h1>.+</h1> <h1> Hello this is a hedaer </h1> + 如果h1标签没有中断,则工作正常 我是说 <h1>Hello this is a hedaer</h1> 您好,这是一辆hedaer 工作正常 但是如果标签看起来像这样,它就不起作用了 <h1

我正在使用sublime文本2编辑器。我想使用正则表达式来匹配所有
h1
标记之间的所有字符

到现在为止,我用的是这样的

<h1>.+</h1>
<h1>
   Hello this is a hedaer
</h1>
+
如果h1标签没有中断,则工作正常

我是说

<h1>Hello this is a hedaer</h1>
您好,这是一辆hedaer
工作正常

但是如果标签看起来像这样,它就不起作用了

<h1>.+</h1>
<h1>
   Hello this is a hedaer
</h1>

你好,我是海德尔

有人能帮我解释一下语法吗?

默认情况下
匹配除新行字符外的所有字符

在这种情况下,您将需要DOTALL选项,它将使
匹配任何字符,包括新行字符。DOTALL选项可以内联指定为
(?s)
。例如:

(?s)<h1>.+</h1>


或者,正则表达式可以是
[^]*
。在这种情况下,您不需要指定任何选项。

因为这个问题是试图查找h1标记之间的所有字符的正则表达式的Google搜索结果中最热门的,我想我也会给出答案。因为那就是我要找的

(?s)(?<=<h1>)(.+?)(?=</h1>)

(?s)(?对于OP的正则表达式,指定这些选项是不够的。@Some1.Kill.The.DJ我已经尝试了你的代码。但是当标记包含break时仍然不匹配如果你在h1中有任何嵌套标记,比如span或link或其他什么…我只是尝试了“(?s)”它在sublime中工作,这很酷。我从来都不知道你可以在sublime中的正则表达式搜索中指定标志-谢谢你提供的信息@Some1.Kill.the.dj不知道你们是如何理解这些东西的。像这样的正则表达式搜索的文档在哪里?这也可以清除连续标记之间的字符,比如(?s)(?