开发者

Notepad++ regex to find 3 consecutive numbers

开发者 https://www.devze.com 2022-12-28 07:57 出处:网络
I\'m trying to use Notepadd++ to find all occurrences of width=xxx so I can change them to width=\"xxx\"

I'm trying to use Notepadd++ to find all occurrences of width=xxx so I can change them to width="xxx"

as far as I have got is width=[^\n] which only selects width=x开发者_运维技巧


If you need exactly 3 numbers, the following is tested in Notepad++:

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

Reading further into your requirement, you can use the tagging feature:

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

Here, the (n) bracketed portions of the regex are stored (in sequence) as \1,\2,...\n which can be referred to in the replacement field.

As a regex engine, Notepad++ is poor. Here is a description of what's supported. Pretty basic.


Looking at the Notepad++ Regular Expression list there does not seem to support the {n} notation to match n characters, so \d{3} did not work.

However, what had worked for me and may be considered a hack was: \d\d\d

Tested in Notepad++ and has worked, for the Find field use (\d\d\d) and for the Replace filed use "\1"\2.


As Tao commented, as of version 6, Notepad++ supports PCRE.

So now You can write:

\d{1,5}


/(width=)(\d+?)/gim

Because you may want variable digits. Some widths may be 8, or 15, or 200, or whatever.

If you want to specify a range, you do it like this:

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

where the 1 represents the lower limit and the 3 represents the upper.

I grouped both parts of the expression, so when you replace you can keep the first part and not blow it away.


Tried it: replace width=([0-9][0-9][0-9]) with width="\1" and worked fine... Of course might not be best syntax to do this but it works...


I would try this one: width=(\d{3,}), and check Regular expression, and also . matches newline

works for me on ver: 7.5.4

0

精彩评论

暂无评论...
验证码 换一张
取 消