Измените третью запятую на: regex

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:

Вы можете сделать:

 ^((d , ){2})(d ),(.*)
 

Тогда замена 13:4

ДЕМОНСТРАЦИЯ

Ответ №4:

Вы можете сопоставить цифры, за которыми следуют необязательные пробелы и запятая, затем использовать K для очистки буфера сопоставления, затем сопоставить третью запятую и заменить на :

 ^(?:d ,h*){2}d h*K,
 

Демонстрация регулярных выражений

Или вы можете сопоставить 3-ю запятую и заменить ее на :

 ^(?:[^rn,]*,){2}[^rn,]*K,
 
  • ^ Начало строки
  • (?:[^rn,]*,){2} Повторите 2 раза, сопоставляя любой символ, , за которым следует запятая
  • [^rn,]* Необязательно сопоставлять любой символ, кроме , символа новой строки
  • K, Очистите буфер сопоставления и сопоставьте ,

Демонстрация регулярных выражений

введите описание изображения здесь

Ответ №5:

Если третья запятая всегда является последней запятой? Затем, используя
.* поскольку задание будет выполнять greedy, самым коротким кодом будет.
Find: ^(.*),
Замените его на: $1: