【问题标题】:How to get text after the match REGEX如何在匹配 REGEX 后获取文本
【发布时间】:2014-02-27 20:21:15
【问题描述】:

例如,我有字符串 "my home" 和正则表达式:$reg = "/hom/"。我正在努力找出如何在匹配后(直到单词结尾)获取文本,在这种情况下,我正在寻找“e”。

另一个例子:

$string = 'soulful'; $reg = '/soul/';

=>>> 我需要'充分'。 提前谢谢你。

【问题讨论】:

    标签: php regex


    【解决方案1】:

    你可以使用:

    $str = 'soulful';
    $reg = '/soul(\w+)/';
    if ( preg_match($reg, $str, $m) )
       print_r ($m);
    

    输出

    Array
    (
        [0] => soulful
        [1] => ful
    )
    

    【讨论】:

      【解决方案2】:

      只需更改您的正则表达式以使用具有() 的组:

      $string = 'soulful';
      $regex = '/soul(.+)/';
      preg_match($regex, $string, $matches);
      var_dump($matches);
      

      输出:

      array(2) {
          [0]=> string(7) "soulful"
          [1]=> string(3) "ful"
          }
      

      【讨论】:

        【解决方案3】:

        您可以扩展您的正则表达式以匹配原始正则表达式之后的所有文本,即:

        $string = 'soulful';
        $regex = '/soul(.*)/';
        if ( preg_match($regex, $string, $match) ) {
         echo 'The text after soul is: '.$match[1].PHP_EOL;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-19
          • 1970-01-01
          • 1970-01-01
          • 2020-11-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多