我對於正則表達式很新穎。我有一個要求來替換多行文本中的空格。替換規則如下:在PHP中使用正則表達式替換空格
- 用一個非中斷空格替換行開始處的所有空格(
)。 - 用相同數量的非斷點空格替換任何重複空格的實例(多個空格在一起)。
- 不在行首的單個空格保持不變。
我用Regex Coach構建匹配模式:
/(){2,}|^()/
假設我有這個輸入文本:
asdasd asdasd asdas1
asda234 4545 54
34545 345 34534
34 345
使用PHP正則表達式替換功能(如preg_replace()
)我想得到這個輸出:
asdasd asdasd  asdas1
 asda234 4545    54
  34545 345  34534
34 345
我很高興使用正則表達式進行簡單的文本替換,但是我無法解決如何在匹配內部多次替換以獲得我期望的輸出。
很好的答案,但它是值得改變你的建議使用\ s,因爲它只是空間序列的提問者想要替換和\ s當然包括選項卡,換行符,回車和其他一些啓用了某些設置的其他人。我會用/(?<= \ x20)\ x20 | \ x20(?= \ x20)|^\ x20/ – Sprogz 2008-10-16 11:03:17
謝謝! /(?<= \ x20)\ x20 | \ x20(?= \ x20)|^\ x20 /結尾處帶有「m」 – 2008-10-16 12:24:49