有人能解释一下这个正则表达式是做什么的吗?


can someone explain what this regex does?

我对这个正则表达式的作用感到困惑:

preg_replace('/^'s*'((.+)')'s*$/', '$1', $part); 
谁能给我一个要点,它是做什么的?

查找在前后有一组带空格的父元素的行,并删除父元素和空格。例如,

     (foo)     

foo

匹配…

  • 可选的前导空格。
  • 文字( .
  • 除换行符外的任意字符。
  • 文字) .
  • 可选尾随空格。

所以它会匹配像…

    (Hello)

…并替换为…

Hello

CodePad .

值得注意的是在字符串中,如…

(Hello)(World)

…它将返回…

Hello)(World

CodePad .

您可以通过在+之后添加?使捕获组不贪婪来停止此匹配。

函数删除空格和圆括号。它用组#1 ($1)替换开头和结尾的任意数量的空格字符,加上两边的开括号和闭括号的字符串,这是在开头和结尾没有空格或括号的字符串。

拆分:

  1. 's*匹配任意数量的连续空格字符。
  2. '(匹配左括号。
  3. (.+)匹配任何连续字符。
  4. ')匹配右括号。
  5. 's*匹配更多空格

基本上,它转换为:

        (Hello)          

:

Hello