我和我的用户通过短信互动,如果他们给我发短信这种模式,我需要执行一个动作:正则表达式检测的文本模式
模式:
*TEXT*TEXT*TEXT#
在TEXT
所有字符都是允许的,所以我做了这个表达式:
if (preg_match('/^\*([^*]*)\*([^*]*)\*([^#]*)\#$/', $text)){
// perform the action...
}
上述正则表达式的工作原理实际上是好,但它不是让未来lines after
#,例如:
'*hello there*how you doing!?* and blah#'
通过正则表达式,但:
'*hello there*how you doing!?* and blah#
'
不受上述正则表达式(注意下一行后#)
我就这样度过决定:
$text = str_replace("\n\r", '', $text);
但是上面的例子仍然没有通过:-(
我应该如何在正则表达式中允许下一行?或摆脱他们?
感谢您的帮助
既然你存储与正则表达式匹配的信息,从模式中删除'$'。 – hjpotter92 2013-02-15 09:58:29
@BackinaFlash但是,如果他们在最新的'#'后面输入*#test#*,这仍然会传递正则表达式,所以它会毁掉整个事物... – behz4d 2013-02-15 10:01:21