現在我有一個正則表達式,我想更改正則表達式的一部分。匹配正則表達式中除空格外的所有字符
(.{3,}?) ~
^---代碼,它說這部分(即長度爲3個或更多的任意字符,並匹配到最近的空間),我想將其更改爲(任何字符,,空格爲,長度爲3或更多,並匹配最近的空格)。我怎麼會說,在正則表達式?
$text = "my name is to habert";
$regex = "~(?:my name is |my name\\\'s |i am |i\\\'m |it is |it\\\'s |call me)?(.{3,}?) ~i";
preg_match($regex, $text, $match);
print_r($match);
結果:
Array ([0] => my name [1] => my name)
需要結果:
Array ([0] => name [1] => name)
'/([^] {3,...})/'似乎是你在找什麼。 – Ghedipunk
@Ghedipunk爲什麼需要方括號?沒有它們,它就無法工作。 – frosty
這是[字符類](http://www.regular-expressions.info/charclass.html)。 '[abc]'表示匹配a,b或c中的一個。脫字號(^)在前面,意思是不匹配該字符類中包含的任何內容。在這種情況下,它意味着匹配任何不是空格的字母。你可以通過'[^ \ s]'或'[\ S]'將它擴展到任何不是任何類型的空格(tab,space,newline)的字符。 – Ghedipunk