我的数据库存储一条消息(字符串)及其相应的正则表达式,它替换了一些变量信息(如日期,金额等)。 一旦识别出正则表达式并将其存储在数据库中,就应该过滤掉所有类似于数据库(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的情况下确保过滤掉类似的消息?
答案 0 :(得分:0)
将正则表达式中的(.*)
更改为(\S+)
,
Payment received NEFT \- Your account (\S+) has been credited for (\S+) from (\S+) vide Txn ref (\S+)