正则表达式 - 匹配双大括号之间的多行内容
Regex - Match multi-line content between double curly brackets
我正在尝试重构一些代码,需要使用正则表达式来查找大量字符串。示例字符串如下:
{{ Form::text('twitter', Input::old('twitter'),
array(
'class'=>'form-control ',
'placeholder'=>'E.g http://www.twitter.com/MyTwitterPage'
))
}}
我已经设法使用 \{\{(.*\s*Form::.*\s*)\}\}
来匹配单行字符串,但它无法匹配多行字符串,例如上面的字符串。
此外,如果有任何帮助,我正在使用 PHPStorm 的正则表达式查找功能。
非常感谢任何帮助。
准备文件并删除换行符。
或将 /s 标志设置为正则表达式并查看是否有效,不确定 php 是否支持它。
/\{\{(.*\s*Form::.*\s*)\}\}/s
您可以使用
\{\{(\s*Form::\w*\((?:[^}]*(?:}[^}]+)*))}}
与\{\{(\s*Form::\w*\([\s\S]*?)}}
基本相同,但使用展开逻辑,效率更高。
我正在尝试重构一些代码,需要使用正则表达式来查找大量字符串。示例字符串如下:
{{ Form::text('twitter', Input::old('twitter'),
array(
'class'=>'form-control ',
'placeholder'=>'E.g http://www.twitter.com/MyTwitterPage'
))
}}
我已经设法使用 \{\{(.*\s*Form::.*\s*)\}\}
来匹配单行字符串,但它无法匹配多行字符串,例如上面的字符串。
此外,如果有任何帮助,我正在使用 PHPStorm 的正则表达式查找功能。
非常感谢任何帮助。
准备文件并删除换行符。
或将 /s 标志设置为正则表达式并查看是否有效,不确定 php 是否支持它。
/\{\{(.*\s*Form::.*\s*)\}\}/s
您可以使用
\{\{(\s*Form::\w*\((?:[^}]*(?:}[^}]+)*))}}
与\{\{(\s*Form::\w*\([\s\S]*?)}}
基本相同,但使用展开逻辑,效率更高。