Блокнот ++ регулярное выражение, чтобы найти 3 последовательных чисел - PullRequest
21 голосов
/ 22 апреля 2010

Я пытаюсь использовать Notepadd ++, чтобы найти все вхождения width = xxx, чтобы я мог изменить их на width = "xxx"

насколько я понял, это ширина = [^ \ n], которая выбирает только ширину = х

Ответы [ 5 ]

28 голосов
/ 22 апреля 2010

Если вам нужно ровно 3 цифры, в Notepad ++ проверяется следующее:

width=\d\d\d[^\d]

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

Find what:    width=(\d\d\d)([^\d])
Replace with: width="\1"\2

Здесь (n) части регулярного выражения в скобках сохраняются (по порядку) как \ 1, \ 2, ... \ n, что можно указать в поле замены.

Как движок регулярных выражений, Notepad ++ оставляет желать лучшего. Здесь - описание того, что поддерживается. Довольно простой.

10 голосов
/ 22 апреля 2010

Глядя на список регулярных выражений Notepad ++ , похоже, не поддерживается нотация {n} для соответствия n символов, поэтому \d{3} не работает.

Однако то, что сработало для меня и может считаться хаком, было: \d\d\d

Протестировано в Notepad ++ и сработало, для поля «Поиск» используйте (\d\d\d) и для поля «Заменить» используйте "\1"\2.

8 голосов
/ 05 февраля 2013

Как отметил Тао, начиная с версии 6, Notepad ++ поддерживает PCRE.

Так что теперь вы можете написать:

\d{1,5}
2 голосов
/ 22 апреля 2010

Попробовал: замените width=([0-9][0-9][0-9]) на width="\1" и сработало нормально ... Конечно, не лучший синтаксис для этого, но он работает ...

2 голосов
/ 22 апреля 2010
/(width=)(\d+?)/gim

Потому что вы можете хотеть переменные цифры. Некоторые ширины могут быть 8, или 15, или 200, или как угодно.

Если вы хотите указать диапазон, вы делаете это так:

/(width=)(\d{1,3)/gim

, где 1 представляет нижний предел, а 3 - верхний.

Я сгруппировал обе части выражения, поэтому при замене вы можете оставить первую часть, а не сдуть ее.

...