获取字符串中紧跟在 @ 符号后面的数字



想象一下,我有一个具有以下值的文本区域。

@3115
Hello this is a test post.
@115
Test quote

我正在尝试使用正则表达式在 PHP 中找到一种方法,即使有多个符号,该方法也会获得"@"符号后面的数值

我想将从正则表达式返回的值存储到数组中是我正在寻找的。

试试这个:

$str = <<<EOF
@3115
Hello this is a test post.
@115
Test quote
EOF;
preg_match_all('/@(d+)/', $str, $matches);
var_dump($matches[1]); // Returns an array like ['3115', '115']

preg_match_all 函数获取输入字符串中正则表达式的所有匹配项,并返回捕获组。

正则表达式细分

/@(d+)/

  • @字面上与字符匹配。
  • (启动捕获组。
  • d匹配数字(等于 [0-9](。
  • +表示数字可以重复一次或多次。
  • )结束捕获组。

(preg_match_all函数为例,但函数无关紧要,其中的正则表达式很重要:(

  $inputString = "@3115
        Hello this is a test post.
        @115
       Test quote";
  preg_match_all("/@(d+)/",$inputString,$output);
  //$output[1] = "3115";      
  //$output[2] = "115";

这将找到一个@字符,然后找到d哪个是任何数值,然后+表示一次或多次捕获[数值]。 ()将其设置为捕获组,因此将仅返回找到的数字,而不返回它前面的@

匹配@,用K忘记它,然后匹配一个或多个数字作为全字符串匹配。

代码:(演示(

$str = <<<TEXT
@3115
Hello this is a test post.
@115
Test quote
TEXT;
preg_match_all('/@Kd+/', $str, $matches);
var_export($matches[0]);

输出:

array (
  0 => '3115',
  1 => '115',
)

相关内容

  • 没有找到相关文章

最新更新