首頁  >  文章  >  後端開發  >  php 字串匹配

php 字串匹配

WBOY
WBOY原創
2016-08-04 09:19:26961瀏覽

有兩個數組,分別為

<code>$template1 = array(
            "您好,你的网址是@,请访问",
            "您预约的时间在@,请按时到@报道",
            "您的面试一结束,请给@评价吧,网址在@"
)
$template2 = array(
            "你的验证码是@",
            "所有的特殊字符有@"
)
</code>

其中的@為任意可能的字串,現在假如我得到一個字串

<code>$message = "您好,你的网址是http://www.baidu.com/jsdkj,请访问";</code>

要判斷這個$message是屬於哪個陣列裡的,該怎麼判斷?

回覆內容:

有兩個數組,分別為

<code>$template1 = array(
            "您好,你的网址是@,请访问",
            "您预约的时间在@,请按时到@报道",
            "您的面试一结束,请给@评价吧,网址在@"
)
$template2 = array(
            "你的验证码是@",
            "所有的特殊字符有@"
)
</code>

其中的@為任意可能的字串,現在假如我得到一個字串

<code>$message = "您好,你的网址是http://www.baidu.com/jsdkj,请访问";</code>

要判斷這個$message是屬於哪個陣列裡的,該怎麼判斷?

把template裡的字串變成正規則,然後逐一符合 message。

例如:

<code>$template1 = array(
            "您好,你的网址是.*,请访问",
            "您预约的时间在.*,请按时到.*报道",
            "您的面试一结束,请给.*评价吧,网址在.*"
)
</code>

值得注意的是:如果 template 陣列比較大,可能會影響效能。另外,模板渲染通常應該是單向的,所以我對這個需求的合理性表示懷疑。

一個in_array不就可以搞定了嗎?難道是我誤解了樓主的意思?

以關鍵字的形式來strpos判斷就行了吧

這種邏輯太少見了,通常是根據 變數 + 模板 得到message,並不會需要你根據message反推啊,是不是哪裡理解錯了?

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn