-2

我这样做对吗?

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

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

4

4 回答 4

1

你不需要正则表达式

if($str[strlen($str)-1] == '%')
     //do stuff
于 2012-08-03T16:58:33.900 回答
1

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

http://rubular.com/r/ovrRr2N7Ze

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

$string = trim($string);
$matches = $string[strlen($string)-1] == '%';
if($matches) {
  //do something
}
于 2012-08-03T16:58:34.167 回答
0

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

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

$matches然后将包含所有匹配的单词。

将正则表达式分开:

  • \w匹配任何单词字符(字母、数字和下划线)
  • +匹配至少一次出现(“一次或多次”)
  • \b匹配单词边界
  • %只是一个百分号
于 2012-08-03T17:01:33.917 回答
0

试着把它扔进一个if声明中。默认情况下,preg_match返回一个整数,其值为真或假。

你没有测试结果。

if(preg_match('/%$/', $line)){
    echo "Line ends with %\n";
}
于 2012-08-03T16:56:38.580 回答