我想检查if语句是在一行还是下一行没有括号如下:
if (blah === blah)
do something
Run Code Online (Sandbox Code Playgroud)
要么:
if (foo === foo) do something
Run Code Online (Sandbox Code Playgroud)
我目前的正则表达式是
/\)(?!.*\{)/
Run Code Online (Sandbox Code Playgroud)
但不起作用.有人有主意吗?
要详细说明此正则表达式不会提取的唯一If语句如下:
if (foo === bar)
{
Run Code Online (Sandbox Code Playgroud)
新行可能是\n
(UNIX)、\r\n
(Windows)、\r
(为了更好的衡量)。广泛匹配新行的表达式是:
/\r\n|\r|\n/
Run Code Online (Sandbox Code Playgroud)
要检查表达式是否在一行上,您可以执行以下操作:
if( preg_match( '/\r\n|\r|\n/', $string ) ) {
// on more than one line
...
} else {
// on one line
...
}
Run Code Online (Sandbox Code Playgroud)
要进一步发展它以适用于您的特定if ... do
语句示例,您可以执行以下操作:
if( preg_match( '/if *\([^\)]+\) *(\r\n|\r|\n) *do /', $string ) ) {
// on more than one line
...
} elseif( preg_match( '/if *\([^\)]+\) *do /', $string ) ) {
// on one line
...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14332 次 |
最近记录: |