php - 如果旁边有 '-',正则表达式只会添加 4 个数字

标签 php regex

我们有这样的 url http://www.example.co.uk/example-product-3436.html 我希望能够使用一个 php 脚本来删除 -unqiue number .我将使用正则表达式来做到这一点。我发现这个 ([^\d])[0-9]{4} 可以找到任何四位数字,但我只希望它找到一个 4 位数字,如果它有 - 在它前面。我怎样才能做到这一点?

最佳答案

//Regular expression
$regex = "/-(\\d{4})\\.html/";

//String to check
$string = "http://www.example.co.uk/example-product-3436.html"; 

//Output match to $match
preg_match($regex, $string, $match);

//Print the unique number
echo $match[1];

正则表达式的解释:

  1. / 是正则表达式的开始
  2. - 匹配连字符
  3. (...) 是一个捕获组(你想要返回的)
  4. \d 匹配任何数字 ([0-9])
  5. {4} 需要四个字符(\d{4} 需要四个字符)
  6. \. 匹配字符“.”从字面上看
  7. html 按字面匹配“html”
  8. / 标记正则表达式的结束

关于php - 如果旁边有 '-',正则表达式只会添加 4 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35405638/

相关文章:

regex - 使用正则表达式查找并替换字符串

java - 如何在Java中实现正则表达式

javascript - 正则表达式选择两个字符串之间的所有内容,但不选择其中一个字符串

javascript - 用于查找文本内 URL 的正则表达式

php - 从redis批量删除

javascript - 我怎样才能使特定的 li 在 while 循环中处于事件状态

php - Paypal 付款高级 : what is the return data for Direct Payment

php - 如何获取 Symfony 控制台应用程序的运行路径?

c# - 使用 Regex.Match 静态方法查找从特定位置开始的匹配项

javascript - 为透明图像添加背景