我也有類似的字符串這一個:正則表達式 - 如何詞鏈匹配,直到非「字」字
這是一個測試字符串 - 這是第二次測試串;這是第三個測試字符串
我的目標是隻匹配字符的第一個鏈條:
這是一個測試字符串
分隔符可以是除一個單詞什麼: ( - ,;,_,?等....)
我該怎麼用一個正則表達式?
謝謝。
我也有類似的字符串這一個:正則表達式 - 如何詞鏈匹配,直到非「字」字
這是一個測試字符串 - 這是第二次測試串;這是第三個測試字符串
我的目標是隻匹配字符的第一個鏈條:
這是一個測試字符串
分隔符可以是除一個單詞什麼: ( - ,;,_,?等....)
我該怎麼用一個正則表達式?
謝謝。
/([a-z\d\s]+)/i
這個匹配的一個或多個是字母(a-z
),數字(\d
),或一個空格(\s
)的。
修飾符i
使其匹配不區分大小寫。
請注意,在這種情況下,您不能使用\w
來匹配字母,因爲它也與OP的問題中明確不允許的下劃線匹配。
使用preg_replace
:
$string = 'This is a test string - This is a second test string ; This is a third test string';
$match = preg_replace('/[^\sa-z].*/i', '', $string);
echo $match; // => This is a test string
也適用,但SQB的答案稍微複雜一些。非常感謝 –
檢查這個表達式,會發現在所有的情況下,字符空間
/[A-Za-z\s]+/is
驚人的,非常感謝 –
被警告說,如果輸出包含數字,這將不會得到預期的結果是:「這是我的1刺;這是我的2字符串,這是我的3字符串「將返回」這是我的「 –
@JesperBunnyJensen謝謝,增加了'\ d'。 – SQB