【问题标题】:How to match some characters with a regular expression?如何用正则表达式匹配一些字符?
【发布时间】:2017-08-28 23:56:39
【问题描述】:

我有字符串"image(100)",我想过滤字符串以删除image,然后括号仅返回数字100

我已尝试删除/[^image]/image,但我不知道如何删除parenthesis

【问题讨论】:

标签: php regex


【解决方案1】:

只替换非数字,什么都没有,是这样的:

echo preg_replace('/\D/', '', 'image(100)');

【讨论】:

  • 我只是量化了\D,所以你是两次而不是七次(\D+)。
  • 肯定比我的简单,只要周围没有文字。
【解决方案2】:

您需要用反斜杠转义括号,因为它们是正则表达式中的特殊字符。这里我用它们来capture的号码和save it to the $matches array

<?php
$str = "image(100)";
if (preg_match("/image\((\d+)\)/", $str, $matches)) {
    echo $matches[1];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多