我想要一個匹配單詞的正則表達式,即使字符之間有空格也是如此。 當我想這個詞test
匹配,它應該符合以下幾點:正則表達式匹配一個單詞,即使字母之間有空格
test t est t e s t
等等,但它不應該像這場比賽的事情:
tste te ts s tet
我有這個正則表達式: (t[\s]*e[\s]*s[\s]*t[\s]*)
但我不認爲這是非常有效的。
我想要一個匹配單詞的正則表達式,即使字符之間有空格也是如此。 當我想這個詞test
匹配,它應該符合以下幾點:正則表達式匹配一個單詞,即使字母之間有空格
test t est t e s t
等等,但它不應該像這場比賽的事情:
tste te ts s tet
我有這個正則表達式: (t[\s]*e[\s]*s[\s]*t[\s]*)
但我不認爲這是非常有效的。
實際上,它與t\s*e\s*s\s*t
相同(如果單詞出現在較大的字符串內,則最好使用\bt\s*e\s*s\s*t\b
)。這是匹配這些單詞的唯一方法。你必須消耗這些空間,否則你將不會有比賽。
那麼沒有更好的方法來做到這一點? – SheperdOfFire 2015-03-31 08:02:17
那麼,你可能會在匹配前用空字符串替換所有空格。但是你會失去單詞界限。 – 2015-03-31 08:06:30
好的,我希望能有一些更短,更高效的東西。比我必須去解決這個問題。 – SheperdOfFire 2015-03-31 08:08:14
爲什麼不從輸入刪除所有的水平空間,然後匹配的正則表達式:
$input = 't e s t';
$regex = '/\btest\b/i';
preg_match($regex, preg_replace('/\h+/', '', $input), $m);
刪除字符類。 – 2015-03-31 07:55:36