2010-04-22 32 views
19

Tôi đang cố gắng sử dụng Notepadd ++ để tìm tất cả các lần xuất hiện của = xxx chiều rộng để tôi có thể thay đổi chúng để width = "xxx"Notepad ++ regex để tìm 3 số liên tiếp

như xa như tôi đã có là width = [^\ n] chỉ chọn chiều rộng = x

Trả lời

28

Nếu bạn cần chính xác 3 số, sau đây được thử nghiệm trong notepad ++:

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

Đọc thêm vào yêu cầu của bạn, bạn có thể sử dụng tính năng gắn thẻ:

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

Ở đây, (n) các phần được đánh dấu của regex được lưu trữ (theo thứ tự) là \ 1, \ 2, ... \ n có thể được tham chiếu trong trường thay thế.

Là công cụ regex, notepad ++ kém. Here là mô tả về những gì được hỗ trợ. Khá cơ bản.

+2

Vì vậy, nó không hỗ trợ '{3}' nhưng nó hỗ trợ phủ nhận các lớp nhân vật (mà không phải lúc nào cũng được hỗ trợ?) loại nào mà chúng ta đặt trong Notepad ++ ??? – gnarf

+0

Mặc dù nó hỗ trợ \ d, không được liệt kê trên trang đó, vì vậy tôi nghi ngờ trang đó không chính xác và lỗi thời. Tôi đã sử dụng \ s + và \ t. – jmanning2k

+0

Độ rộng = "\ 1" \ 2 thay thế chiều rộng lá = "", do đó, có vẻ như \ 1 không trả lại bất kỳ chữ số – atwellpub

9

Nhìn vào Notepad++ Regular Expression list có vẻ như không hỗ trợ ký hiệu {n} để khớp với n ký tự, vì vậy \d{3} không hoạt động.

Tuy nhiên, những gì đã từng làm việc cho tôi và có thể được coi là một hack là: \d\d\d

Tested trong Notepad ++ và đã từng làm việc, đối với Find lĩnh vực sử dụng (\d\d\d) và cho việc sử dụng Replace nộp "\1"\2.

+0

Đây là một chiều rộng thành công = \ d \ d \ d, nhưng tôi đang ở mất vào những gì để thiết lập thay thế để bảo toàn 3 số – atwellpub

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

Vì bạn có thể muốn có chữ số thay đổi. Một số chiều rộng có thể là 8, hoặc 15, hoặc 200, hoặc bất cứ điều gì.

Nếu bạn muốn chỉ định một phạm vi, bạn làm điều đó như thế này:

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

nơi 1 đại diện cho giới hạn dưới và 3 đại diện phía trên.

Tôi đã nhóm cả hai phần của biểu thức, vì vậy khi bạn thay thế, bạn có thể giữ phần đầu tiên và không thổi nó đi.

2

Thử nó: thay thế width=([0-9][0-9][0-9]) với width="\1" và làm việc tốt ... Tất nhiên có thể không được cú pháp tốt nhất để làm điều này, nhưng nó hoạt động ...

6

Như Tao nhận xét, như các phiên bản 6, Notepad ++ hỗ trợ PCRE.

Vì vậy, Bây giờ bạn có thể viết:

\d{1,5} 
+0

Tôi đã thử nghiệm trong 6.3, nó nói "biểu thức chính quy không đúng" ... Nó phải là '\ d {1,5}' – mrdaliri

+0

Cảm ơn bạn, đã sửa nó. –

+0

Tuyệt vời! Chỉ là những gì tôi đang tìm kiếm. Sử dụng '\ d {10}', ví dụ, để tìm một chuỗi gồm 10 số. – thatWiseGuy

Các vấn đề liên quan