簡體   English   中英

我如何使用正則表達式比較php字符串變量

[英]how do i compare php string vars using regex

我想匹配兩個字符串(使用正則表達式),以忽略一個字符串可能帶有或不帶有連字符和/或單引號字符的事實(實際上只是忽略了兩個字符串中的所有標點符號)。

問題是兩個字符串都在PHP變量中,而不是我可以輕松實現的文字,但是不包含變量-請提出任何想法...甚至可能。

例如,像模式修飾符/ i指定不區分大小寫的比較-是否有修飾符說忽略標點,只比較字母數字字符串?

if (preg_replace("/['\-]/", '', $str1) == preg_replace("/['\-]/", '', $str2) {
   ...equal...
}

基本上:從兩個字符串中去除'- ,然后比較得到的去除字符串。 如果您不區分大小寫,請改用strtolower(preg_replace(....))

我要替換兩個字符串中的所有非字母數字+空格( \\s )字符。 然后在正則表達式中使用一個字符串與其他字符串匹配。

$str1 = "alexander. was a hero!!";
$str2 = "alexander, was a hero?";
if(preg_match(
        "/^".preg_replace("/[^a-zA-Z0-9\s]/", "", $str1)."$/i", 
        preg_replace("/[^a-zA-Z0-9\s]/", "", $str2)
    )){
    print "matched!";
}

如果需要,可以忽略上述正則表達式中的空格( \\s )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM