1

У меня есть текстовый документ, который содержит несколько строк с 2 запятыми и несколько строк с 3 запятыми.

Я хочу выделить все строки с 3 запятыми. Как я могу это сделать?

Вот пример документа:

basb,asbdausd,asduasbd
sdauabs,asbudasud,busadasbu,asduasub
asdbua,asbudsdbu,ubasdub

2 ответа2

3

Я думаю, что это работает лучше, чем другой ответ, так как этот совпадает с 4 запятыми.

Конечно, это работает с любым персонажем, просто замените запятые ...

Если вы не хотите сопоставлять меньше или больше 3 запятых в строке, я использовал этот шаблон:

^[^,\n]*((,[^,\n]*){3}$)

Объяснение каждой части этого шаблона следует (потому что регулярные выражения НЕ очевидны для меня :-)):

^

В начале выражения reg означает начало строки

[^,\n]*

Соответствует любому количеству символов, которые не являются символом новой строки или запятой

(,[^,\n]*)

Это соответствует одной запятой, за которой следует ноль или более символов, которые не являются запятой или символом новой строки

{3}$

Это значит найти предыдущий паттерн ровно три раза до конца строки

((,[^,\n]*){3}$)

Обязательно поставьте круглые скобки вокруг этой части, чтобы было ясно, что повторяется три раза (не первый ноль или более символов, которые не являются запятой или символом новой строки)

Вполне возможно, что есть более простой способ - но я тестировал, и я уверен, что он отлично работает в текущей версии notepad++.

1

Используйте поиск по регулярным выражениям в Notepad++ .

Например, вот RegEx, который будет соответствовать строкам по крайней мере с 3 запятыми:

.*,.*,.*,

Что в основном означает поиск «Любое количество символов, за которыми следует запятая, за которыми следует любое количество символов, за которыми следует запятая, за которой следует любое количество символов, за которыми следует запятая».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .