我想检查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 次 |
| 最近记录: |