【问题标题】:Preg_replace find numbers in string [closed]Preg_replace 在字符串中查找数字
【发布时间】:2018-01-02 09:23:36
【问题描述】:

下午好,

我的 preg_replace 中有错误。我的字符串是Cat-115/Tid-11,我想在Cat-115/Tid- 之后找到任何数字并打印出来

你能帮我解决这个问题吗?我敢肯定,这是一些基本错误,很抱歉...

我的代码:

$destination = $_GET['q']; Out ////Cat-115/Tid-11
$numbers = preg_replace('/[^0-9]/', '', $destination);
if (strpos($destination, $numbers) !== false) {

}

谢谢!

【问题讨论】:

  • 你能分享你的代码吗?
  • “Cat-115/Tid-”是静态词吗?
  • 已更新........
  • 对不起,我的意思是“Cat-115/Tid-”的长度?
  • 紧跟在“Tid-”数字之后总是可变的!

标签: php regex preg-replace special-characters


【解决方案1】:

假设Cat-115/Tid- 是一个固定字符串,并且您想“找到 Cat-115/Tid- 之后的任何数字并打印出来”,例如,您可以使用 preg_match

使用\K 重置报告匹配的起点:

$destination = "Cat-115/Tid-11";
preg_match('/Cat-115\/Tid-\K\d+/', $destination, $m);
echo $m[0];

或者捕获数字是一个捕获组(\d+)

preg_match('/Cat-115\/Tid-(\d+)/', $destination, $m);
echo $m[1];

Output

【讨论】:

  • 我可以在“Cat-115/Tid-”之后找到字符串而不是数字吗??
  • @BijanZand \d+ 匹配一位或多位数字。您可以将其更改为例如 \w+ 以匹配一个或多个单词字符。
  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 2012-04-09
  • 2023-01-26
  • 2011-01-11
  • 2020-06-19
  • 2019-05-04
  • 1970-01-01
  • 2023-04-06
相关资源
最近更新 更多