Примечание: Решение Тима проще и решает эту проблему, но я оставлю это здесь для справки, в случае, если кто-то аналогичное, но более сложную проблему, которая с помощью lookarounds может поддерживать ,
Более простой способ, чем ваше выражение является замена:
(?<!\d)\d(?!\d)
С:
0$0
который "заменить все одиночные цифры с 0, то само по себе".
регулярное выражение:
Отрицательный просмотра назад не найти цифру (?<!\d)
одноразрядные: \d
Отрицательных опережения не найти цифру (?!\d)
Однофазного это позиционная матч (не совпадение символов), он обслуживает как запятую, так и начальную/конечную позиции.
В разделе $0
говорится, что «весь матч» - с позиций соответствия lookbe/впереди, это будет содержать единственную цифру, которая была сопоставлена.
+1 для ответа на добавленную стоимость! – Amarghosh
Согласно этой ссылке поддерживается $ 0, поэтому вы можете упростить регулярное выражение до '\ b \ d \ b' и использовать 0 $ 0 в результате. –
Еще лучше :) Служит мне правильно, не читая его более тщательно. Отредактировал мой ответ. –