谁能解释这个正则表达式的作用?

时间:2011-10-31 01:58:45

标签: php regex

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

preg_replace('/^\s*\((.+)\)\s*$/', '$1', $part); 

有人可以告诉我它的作用吗?

4 个答案:

答案 0 :(得分:4)

它找到具有一组可选前后空格的parens的行,并删除parens和whitespace。如,

     (foo)     

变为

foo

答案 1 :(得分:2)

匹配......

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

所以它会像......那样匹配。

    (Hello)

...并将其替换为......

Hello

CodePad

值得注意的是如......

这样的字符串
(Hello)(World)

......它会回来......

Hello)(World

CodePad

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

答案 2 :(得分:0)

该功能修剪了空格和圆括号。它用开头和结尾的任意数量的空格字符替换一个字符串,加上左右的开括号和右括号,组#1($1),这是在开头或结尾没有空格或括号的字符串

答案 3 :(得分:0)

分手:

  1. \s*匹配任意数量的连续空格字符。
  2. \(匹配左括号。
  3. (.+)匹配任何连续的字符。
  4. \)匹配右括号。
  5. \s*匹配更多空格。
  6. 基本上,它转换了这个:

            (Hello)          
    

    对此:

    Hello