正则表达式匹配字符串结尾与PHP中的%

时间:2012-08-03 16:52:21

标签: php regex

我这样做是否正确?

preg_match("/%$/",$line,$matches)

但它不会工作! 任何帮助,请

4 个答案:

答案 0 :(得分:1)

你不需要regexp

if($str[strlen($str)-1] == '%')
     //do stuff

答案 1 :(得分:1)

你的解决方案应该是正确的。

http://rubular.com/r/ovrRr2N7Ze

您也可以不使用正则表达式,因为这是一个非常简单的情况:

$string = trim($string);
$matches = $string[strlen($string)-1] == '%';
if($matches) {
  //do something
}

答案 2 :(得分:1)

您想匹配以百分号结尾的单词吗? $匹配输入(或行)的结尾,而不是单个单词的结尾。 如果要匹配以百分号结尾的所有单词,请使用以下正则表达式:

preg_match_all('/\b\w+%\b', $input, $matches);
然后

$matches将包含所有匹配的字词。

将正则表达式分开:

  • \w匹配任何字符(字母,数字和下划线)
  • +至少匹配一次(“一个或多个”)
  • \b匹配字边界
  • %只是百分号

答案 3 :(得分:0)

尝试将其折腾成if语句。默认情况下,preg_match返回一个整数,其值为true或false。

您没有测试结果。

if(preg_match('/%$/', $line)){
    echo "Line ends with %\n";
}