正则表达式仅返回某些值PHP

时间:2018-11-20 09:55:51

标签: php

我不记得该使用什么来仅返回字符串的特定部分。 我有这样的字符串:-

$str = "return(me or not?)";

我想得到之后的单词。在此示例中,me将是我的结果。我该怎么做?

我不认为substr是我想要的。因为substr根据您提供的索引返回值。在这种情况下,我不知道该索引,它可能会有所不同。我所知道的是,我想返回“(”之后和空格“”之前的任何内容。那里的索引位置总是不同的,因为我不能使用substr(..)。

3 个答案:

答案 0 :(得分:1)

此正则表达式应该可以解决问题。由于您没有提供一般规则,仅提供了一个示例,因此可能需要进一步的更改。

preg_match('/\((\S+)/', $input, $matches);

$matches[1]包含“我”。

答案 1 :(得分:0)

<?php

// Your input string
$string = "return(me or not?)";

// Pattern explanation:
// \( -- Match opening parentheses
// ([^\s]+) -- Capture at least one character that is not whitespace.
if (preg_match('/\(([^\s]+)/', $string, $matches) === 1)
    // preg_match() returns 1 on success.
    echo "Substring: {$matches[1]}";
else
    // No match found, or bad regular expression.
    echo 'No match found';

答案 2 :(得分:0)

捕获组的结果将是使用此正则表达式和preg_match()的结果。

$regex = '/\((\w+)/';

检查preg_match()以获取工作参考。