-2
我繼承了一些我試圖修改的webgame的php代碼。我遇到了這條線,我無法弄清它應該做什麼。有人可以幫我嗎? $ notice只是一個普通的字符串。請爲我解碼這個正則表達式
$notice = preg_replace("#([\S]{60})#i", "\\1 ", $notice);
我繼承了一些我試圖修改的webgame的php代碼。我遇到了這條線,我無法弄清它應該做什麼。有人可以幫我嗎? $ notice只是一個普通的字符串。請爲我解碼這個正則表達式
$notice = preg_replace("#([\S]{60})#i", "\\1 ", $notice);
它會找到的60個非空白字符的任何連續序列$notice
,並在其後插入空格:
(..)
創建一個捕獲組。因爲它是第一組,所以它在替換字符串中被稱爲\1
。因爲整個模式都在組中,所以在這裏並不是真的需要。[..]
創建一個字符類,但因爲它只包含一個元字符,所以這裏也不是真的需要。\S
匹配任何非空白字符{60}
是一個量詞;它意味着'重複60次'。此代碼等同於:
$notice = preg_replace("#\S{60}#i", "\\0 ", $notice);
非常好的答案。 +1的時間來解釋它,而不是隻發佈正則表達式。 –
*參見[打開源使用RegexBuddy替代(http://stackoverflow.com/questions/89718/is-there)和[在線的正則表達式的測試] (http://stackoverflow.com/questions/32282/regex-testing)提供一些有用的工具,或[RegExp.info](http://regular-expressions.info/)以獲得更好的教程。 – mario
請爲我們學習正則表達式! regular-expressions.info –
[** StackOverflow **](http://bit.ly/4Agih5)是** NOT!**,可以向某人索取免費的「代碼」。 [此類問題對本網站**不好](http://bit.ly/dcqznq),並且將爲[** Closed **](http://bit.ly/18T95z1)或[**刪除**](http://bit.ly/10c3VuR),*取而代之* [瞭解什麼類型](http://bit.ly/r0ZSEc)您可以或應該問的問題。如果您對此有任何疑問,請隨時諮詢[Meta](http://bit.ly/SgO5J),或查看[常見問題](http://bit.ly/18T95z1),瞭解一般信息。 – samayo