2012-08-03 1035 views
-2

我正确地做这件事吗?正则表达式匹配以%结尾的字符串php

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

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

+5

当你说“不行”时,你是什么意思?是否引发错误?它不符合你想要的吗?什么? – girasquid 2012-08-03 16:53:56

+0

不会抛出任何异常! – pahnin 2012-08-03 16:57:24

+0

您的模式对我的工作原理如下:http://codepad.viper-7.com/wpzQ59返回1. – 2012-08-03 16:57:54

回答

1

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

http://rubular.com/r/ovrRr2N7Ze

你也不能使用正则表达式,因为这是这样一个简单的例子:

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

试着把它折腾成if声明。默认情况下,preg_match返回一个整数,其值为true或false。

您未测试结果。

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

你不需要正则表达式

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

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

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

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

以正则表达式开:

  • \w匹配任何字符(字母,数字和下划线)
  • +匹配的至少一个出现时( “一个或多个”)
  • \b匹配单词边界
  • %只是百分号
相关问题