我想刪除每個!
字符,該字符串是之後不是一個單詞。爲了完成這個任務,我想着preg_replace()
來執行正則表達式匹配。匹配'感嘆號'字符'不立即前面有一個單詞'
也就是說,我想一個文本以下褻瀆:
search! query ! !key!words that! acc!ept exclamation! marks!
...成爲:
search! query keywords that! accept exclamation! marks!
沒有必要採取雙+事件考慮進去,因爲我使用(![!]+)
進行過濾 - 儘管如果有人知道需要考慮雙倍出現的解決方案,我很樂意歡迎它,因爲它不需要額外查找。
到目前爲止,我有(!\b)|(\s+!\s+)|(!\s+!)
它 - 除了是在我看來有點古怪 - 作品幾乎完美,但有時刪除單詞之間的間距,生產的
search! querykeywords that! accept exclamation! marks!
編輯
結果解析字符串時,我需要考慮重音和/或大寫字符。
**好和清楚**。對於任何想知道的人來說,如果後續出現'!!'字符(這不是一個問題,正如我以前在原始問題中所述)。但是,將其更改爲'\ B!+ |!+ \ b'解決了這個問題 - 或者看起來像這樣 - http://www.regexr.com/3acqi – 2015-02-09 21:28:00