我已经尝试了很多很多的解决方案,但不幸的是,没有为我工作。 以下是我的代码。PHP否定正则表达式
<?php
$x = "09-27,09-28,10-01,10-02";
$y = preg_replace("/09-\w*,/", "", $x);
echo $y;
?>
这将输出10-01,10-02 现在,我想是否定它,因此输出为: 09-27,09-28 但我怎么也找不到至。 非常感谢,我需要我能得到的所有帮助。 我想要的是替换不等于给定模式的字符串。
我已经尝试了很多很多的解决方案,但不幸的是,没有为我工作。 以下是我的代码。PHP否定正则表达式
<?php
$x = "09-27,09-28,10-01,10-02";
$y = preg_replace("/09-\w*,/", "", $x);
echo $y;
?>
这将输出10-01,10-02 现在,我想是否定它,因此输出为: 09-27,09-28 但我怎么也找不到至。 非常感谢,我需要我能得到的所有帮助。 我想要的是替换不等于给定模式的字符串。
只需匹配您想要删除的部分。
$y = preg_replace("~,?10-\w*,?~", "", $x);
说明:由empty string
。看到演示
,? ',' (optional)
10- '10-'
\w* word characters (a-z, A-Z, 0-9, _) (0 or more times)
,? ',' (optional)
解释从您的网站被盗。 – 2014-11-03 03:44:41
〜意味着什么? – 2014-11-03 07:08:34
我很抱歉,我很困惑。我忘了提及这个模式是动态的。它会来自一个
,(?=[^,]+,[^,]*$).*$
尝试this.Replace。
http://regex101.com/r/tF4jD3/1
$re = "/,(?=[^,]+,[^,]*$).*$/";
$str = "09-27,09-28,10-01,10-02";
$subst = "";
$result = preg_replace($re, $subst, $str);
美好的一天。$ str应该是动态的以及$ re.So,如果万一我的$ str =“09-27,09-28,10-01,10-02,10-03”和$ re = 10-它会替换所有10个,而不仅仅是最后2场比赛 – 2014-11-04 01:49:36
你为什么不试试这个'$ Y =的preg_replace( “〜,10 \ W *,?〜?”, “”,$ X);'? – 2014-11-03 03:36:55
我很抱歉,我很困惑。我忘了提及这个模式是动态的。它将来自于价值取决于用户的