2015-05-27 79 views
1

我試圖檢查一個字符串是否以一個_和一箇舊系統上的兩個字母用php結尾。我在這裏檢查在stackoverflow的答案,我發現一個想要做同樣的,但有一個.和兩個數字。正則表達式來檢查字符串是否以一個下劃線和兩個字母結尾用php

我試圖改變它與我需要工作,我得到這個:

\\.*\\_\\a{2,2}$

然後我去PHP和嘗試這樣做:

$regex = '(\\.*\\_\\a{2,2}$)'; echo preg_match($regex, $key);

但這始終返回錯誤,如下所示:

preg_match(): Delimiter must not be alphanumeric or backslash

我得到這種情況是因爲我不能使用反斜槓或其他東西,我該如何正確地做到這一點?而且,我的正則表達式是否正確(我不知道如何形成這些表達式以及它們是如何工作的)?

回答

1

你可以使用這個表達式帶分隔符:因爲在每一個PHP正則表達式需要一個分隔符

$regex = '/_[a-z]{2}$/i'; 

你得到錯誤(不使用的/上面它可以是任何其它字符一樣~也)。

+1

按預期工作,非常感謝我的朋友。 – rafamds

+0

如果我必須測試它,如果字符串結尾是:'_ ** _ slug' beeing'''隨機字母和'_slug'特定單詞?我會這樣做: ''/ _ [az] {2} _slug $/i'' – rafamds

+1

然後它會是:'$ regex ='/_([az]{2}|.*?_slug)$/I';' – anubhava

1
^.*_[a-zA-Z]{2}$ 

這應該爲你做。

$re = "/^.*_[a-zA-Z]{2}$/"; 
    $str = "abc_ac"; 

    preg_match($re, $str); 
相關問題