views:

449

answers:

4

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

+2  A: 

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.

Anthony Forloney
This was a success width=\d\d\d, but I'm at loss on what to set the replace to to preserve the 3 numbers
atwellpub
A: 
/(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.

Robusto
+2  A: 

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.

spender
So it doesn't support `{3}` but it does support negating character classes (which isn't always supported?) what sort of "Regular Expressions" craziness did they put in Notepad++???
gnarf
Though it does support \d, which isn't listed on that page, so I suspect that page is inaccurate and out of date. I've used \s+ and \t.
jmanning2k
The width="\1"\2 replace leaves width="", so it looks like the \1 does not return any digits
atwellpub
sorry I didnt alter my search to width=(\d\d\d). Thank you all!
atwellpub
I was 3 seconds off, arg! At least it worked for you, god that was a bitch.
Anthony Forloney
Working great here. np++5.1.1
spender
Had to work for me with grouping and I am using Notepad++ v5.6.8
Anthony Forloney
A: 

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...

Andrew