Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP正则表达式在句点之后和空格之前提取文本_Php_Regex - Fatal编程技术网

PHP正则表达式在句点之后和空格之前提取文本

PHP正则表达式在句点之后和空格之前提取文本,php,regex,Php,Regex,我试图从不同的字符串中提取某个部分,但要得到正确的正则表达式却非常困难。以下是我试图从中得出的一些例子: AG055.MA-MAGNUM(只想返回MA) WI460.16-某物(想要返回16) AG055.QB(想要返回QB) 所以基本上,我只想在句号之后,但在空格之前,拉字符。在这之前或之后没有别的事。有人能帮我找到正确的正则表达式吗 preg_match('/\w+\.(\w{2})\s/', $input, $matches); echo $matches[1]; \w+表示一个或多个

我试图从不同的字符串中提取某个部分,但要得到正确的正则表达式却非常困难。以下是我试图从中得出的一些例子:

  • AG055.MA-MAGNUM(只想返回MA)
  • WI460.16-某物(想要返回16)
  • AG055.QB(想要返回QB)
  • 所以基本上,我只想在句号之后,但在空格之前,拉字符。在这之前或之后没有别的事。有人能帮我找到正确的正则表达式吗

    preg_match('/\w+\.(\w{2})\s/', $input, $matches);
    echo $matches[1];
    
    • \w+
      表示一个或多个单词字符(a-z、a-z和0-9)
    • \.
      表示句点/点(反斜杠用于转义,因为
      \.
      在正则表达式中用作运算符)
    • (\w{2})
      匹配两个单词字符
    • \s
      表示空白
    • \w+
      表示一个或多个单词字符(a-z、a-z和0-9)
    • \.
      表示句点/点(反斜杠用于转义,因为
      \.
      在正则表达式中用作运算符)
    • (\w{2})
      匹配两个单词字符
    • \s
      表示空白
    这应该可以:

    <?php
    preg_match( '/\.([^ ]+)/', $text, $matches );
    
    print_r( $matches );
    ?>
    
    正则表达式是说找到一个。字符,然后获取其后不是空格字符的任何字符。+使其仅返回点后有非空格字符的匹配项。

    这应该可以:

    <?php
    preg_match( '/\.([^ ]+)/', $text, $matches );
    
    print_r( $matches );
    ?>
    
    preg_match('/^[A-Z0-9]{5}\.([A-Z0-9]{2})/', $string, $matches);
    var_dump($matches);
    
    正则表达式是说找到一个。字符,然后获取其后不是空格字符的任何字符。+使其仅返回点后有非空格字符的匹配项

    preg_match('/^[A-Z0-9]{5}\.([A-Z0-9]{2})/', $string, $matches);
    var_dump($matches);
    
    应返回
    $matches[1]
    中的字符

    应返回
    $matches[1]
    中的字符