需要2组字符之间的php正则表达式
我需要一个php的正则表达式,输出<!--:en-->
和<!--:-->
之间的所有内容。 因此对于<!--:en-->STRING<!--:-->
它只会输出STRING
。需要2组字符之间的php正则表达式
编辑:噢,下面<!--:-->
nedds是<!--:en-->
后的第一个becouse有更多的文字..
你想要的其实并不是太复杂:
/<!--:en-->(.*?)<!--:-->/gi
你的比赛将在捕获组1
说明:
的.*?
是一个懒惰的量词。基本上,它意味着“保持匹配,直到找到仍然适合此模式的最短字符串”。这将导致匹配在第一个实例<!--:-->
处停止,而不是直到文档中的最后一个<!--:-->
。
如果我正确记得我的PHP,那么用法就像preg_match("/<!--:en-->(.*?)<!--:-->/gi", $input)
。
如果你只是输入
$input = '<!--:en-->STRING<!--:-->';
您可以
尝试$output = strip_tags($input);
是啊,那不会工作,我得到和,所以它会将它们全部剥离... – Milivoj
尝试:
^< !--:en-- >(.*)< !--:-- >$
我不认为任何其他角色需要转义。
试图,但没有结束分隔符'^'错误 – Milivoj
OP没有指定该字符串是整行;实际上他特别指出在投入中有不止一种这样的模式。你的模式在至少三种方式上是错误的:要求整个字符串匹配,需要标签内的空格,并使用贪婪的'。*'作为一个匹配消耗到最后一个结束标记的所有路径,即使没有'^$'。 –
到目前为止,您尝试过哪些方法?您卡在哪里?向我们展示您的代码 - 我们将指出需要更改的内容。 –
我没有得到任何代码,因为我吸吮正则表达式:) – Milivoj
要添加代码,只需选择文本并单击图标与父母或ctrl + k在Windows上,我已经解决了这个问题 –