【问题标题】:Regex String Get Data In Brackets正则表达式字符串获取括号中的数据
【发布时间】:2013-01-16 17:58:20
【问题描述】:

我遇到了一个正则表达式问题,希望有人能提供帮助。

我有以下类型的字符串:

" name VARCHAR(11) NOT NULL, "

我试图只提取其中的长度 - 换句话说,括号内的数字。

我看过这个:True regex for getting content from parentheses in square brackets,但我只是不知道如何让我的案子发挥作用。

我知道我可以使用 str_replace 来删除不需要的数据,但这会很混乱并浪费资源。

谁能帮忙?

【问题讨论】:

    标签: php mysql regex


    【解决方案1】:

    应该这样做:

    $matches = Array();
    preg_match("/\w+\((\d+)\)/i", " name VARCHAR(11) NOT NULL, ", $matches);
    

    $matches 现在将包含

    Array
    (
        [0] => VARCHAR(11)
        [1] => 11
    )
    

    【讨论】:

      【解决方案2】:

      如果您要查找的只是括号之间的一些数字,那么您可以使用一些类似于此的代码 -

      $str = " name VARCHAR(11) NOT NULL, ";
      $matches = array();
      $pattern = '/\((\d+)\)/';
      preg_match_all($pattern,$str,$matches);
      

      此代码使用preg_match() 函数,该函数执行正则表达式匹配。

      如果提供了matches,则将其填充为搜索结果。 $matches[0] 将包含与完整模式匹配的文本,$matches[1] 将包含与第一个捕获的带括号的子模式匹配的文本,依此类推。

      【讨论】:

        【解决方案3】:

        试试这个模式:

        /.*\(([0-9]+)\).*/
        

        【讨论】:

          猜你喜欢
          • 2011-07-17
          • 2010-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-20
          相关资源
          最近更新 更多