2010-07-22 71 views
2

即時新聞正則表達式,並想破譯此。你能告訴我這個正則表達式的含義嗎?

return preg_replace("/[<>]/", '_', $string); 

謝謝!!

+5

這意味着,用'無動於衷的臉'代替'用手臂揮舞着傷心的機器人' - 這就是它的意思。 – Gordon 2010-07-22 19:41:47

+0

悲傷的機器人?!它看起來像兩個麻雀法式接吻 – hollsk 2010-07-22 19:45:46

+0

@hollsk nope,這只是你的骯髒的幻想玩雅技巧; – Gordon 2010-07-22 19:49:17

回答

9

這意味着「用下劃線替換字符串$string中的每個<>,然後返回結果」。

斜線(/)分隔正則表達式。您可以使用其他字符(preg_replace("#[<>]#", '_', $string);可以正常工作,如果您的正則表達式本身包含斜線,則可以使用)。

[]括號表示一個字符類。它們基本上是「班上所有人的一個字符」,所以[<>]的意思是「<>」。

您還可以通過與^開始就否定一個字符類:[^<>]手段「除了<>任何字符

+0

擊敗我30秒。很高興我的回答是對的。 :P – spinon 2010-07-22 19:40:28

+0

感謝這非常有幫助,我唯一不知道的是在參數的開始和結束處使用/(或者如您在示例中顯示的那樣)使用/的最新點,該函數不能通過簡單地使用「[<>]」 謝謝! – chicane777 2010-07-22 20:00:01

+0

它不會工作,因爲PHP需要使用正則表達式分隔符。我不能告訴你爲什麼 - 其他語言已經實現了這個不同。 Python或.NET使用字符串(沒有額外的分隔符),Ruby有正則表達式作爲第一類對象,所以他們需要自己的分隔符('/')。在JavaScript中,您可以選擇使用字符串('「...」')或正則表達式對象('/.../')構建正則表達式。爲什麼你需要在PHP中 - 不知道。 – 2010-07-22 20:05:58

0

它看起來就像是用下劃線代替無論是大於或小於號但我在正則表達式中有點生鏽

相關問題