regex
#регулярное выражение
Вопрос:
Я хочу изменить третью запятую в этой строке, используя regex в notepad
145, 45, 67, 688
С помощью «:»
Вот так :
145, 45, 67: 688
Я пробовал это
(?:,)(,)*
Я думаю, что я что-то упускаю
Комментарии:
1. Всегда ли третья запятая также является последней запятой?
Ответ №1:
Вы можете использовать это регулярное выражение в диалоговом окне:
Найдите, что: ^(([^,]*,){2}[^,]*),
Замените на: 1:
Первое ^
совпадает с началом строки. Выражение ([^,]*,){2}
соответствует всему с точностью до запятой два раза. Затем выражение [^,]*
сопоставляет все, вплоть до третьей запятой, но исключая ее. На первую так называемую группу захвата ссылается 1
. В данном случае это относится к тому, что находится внутри самых внешних круглых скобок.
Ответ №2:
Если третья запятая всегда является последней, вы можете проверить конец строки / строки с помощью $
:
,(?=[^,]*$)
Демонстрация: https://regex101.com/r/c0XANJ/1
Ответ №3:
Ответ №4:
Вы можете сопоставить цифры, за которыми следуют необязательные пробелы и запятая, затем использовать K
для очистки буфера сопоставления, затем сопоставить третью запятую и заменить на :
^(?:d ,h*){2}d h*K,
Демонстрация регулярных выражений
Или вы можете сопоставить 3-ю запятую и заменить ее на :
^(?:[^rn,]*,){2}[^rn,]*K,
^
Начало строки(?:[^rn,]*,){2}
Повторите 2 раза, сопоставляя любой символ,,
за которым следует запятая[^rn,]*
Необязательно сопоставлять любой символ, кроме,
символа новой строкиK,
Очистите буфер сопоставления и сопоставьте,
Ответ №5:
Если третья запятая всегда является последней запятой? Затем, используя
.*
поскольку задание будет выполнять greedy, самым коротким кодом будет.
Find: ^(.*),
Замените его на: $1: