preg_match不作为过滤器使用,请查看详细信息

时间:2014-08-20 09:53:08

标签: php regex preg-match

我的数据库存储一条消息(字符串)及其相应的正则表达式,它替换了一些变量信息(如日期,金额等)。 一旦识别出正则表达式并将其存储在数据库中,就应该过滤掉所有类似于数据库(regex)中的消息(使用preg_match())。 但是,当我将以下内容存储在我的数据库中时,类似的消息不会被过滤掉。

$message = Payment received NEFT - Your account account_number has been credited for some_amount from some_sender vide Txn ref some_ref_num.

$corresponding_regex = Payment received NEFT \- Your account (.*) has been credited for (.*) from (.*) vide Txn ref (.*)

我猜这个问题是'NEFT'。因为,如果我删除它,类似的消息将被过滤掉。但是,我不能用(。*)取代NEFT,因为这些信息对我来说是必不可少的。

如何在不使用正则表达式替换NEFT的情况下确保过滤掉类似的消息?

1 个答案:

答案 0 :(得分:0)

将正则表达式中的(.*)更改为(\S+)

Payment received NEFT \- Your account (\S+) has been credited for (\S+) from (\S+) vide Txn ref (\S+)

DEMO