2012-10-31 28 views
15

Tôi có một tệp có một số tên được phân cách bằng dấu phẩy và một số số tài khoản được phân cách bằng dấu phẩy. Vì vậy, tên sẽ luôn luôn là một cái gì đó như "Dow, John" và những con số như ",19862". Sử dụng các tính năng Regex Find của Notepad ++, tôi muốn thay đổi tất cả các ký tự ',' giữa các số thành '|' s.Sử dụng Notepad ++ Regex để Tìm và Thay thế Chỉ một phần của Văn bản Tìm thấy

Về cơ bản lần lượt:

12345,09876 
13568,08642 

vào

12345|09876 
13568|08642 

Tôi đã sử dụng [0-9],-tìm các dấu phẩy, nhưng tôi không thể làm cho nó rời khỏi đúng chữ số cuối cùng của số và thay thế chỉ là dấu phẩy.

Bất kỳ ý tưởng nào?

Trả lời

18

Tìm kiếm ([0-9]), và thay thế bằng \1|. Điều đó có hiệu quả không?

+0

Ah, điều này dường như làm điều đó, cảm ơn! Tôi đã cố gắng '[0-9]' và thay thế nó bằng '\ 1 | ', mà không làm việc, nhưng thêm dấu ngoặc đơn như bạn đã làm ở đây hoạt động hoàn hảo. Cảm ơn một lần nữa! – JToland

+0

Tại sao chúng ta cần các parens? – Patrick

+1

@Patrick Trong regex, các dấu ngoặc đơn tạo ra một nhóm chụp yêu cầu trình phân tích cú pháp nắm bắt các phần trong nhóm để nó có thể được sử dụng để thay thế. –

6

sử dụng regex này

(\d),(\d) 

và thay thế bằng

$1|$2 

HOẶC

\1|\2 
+0

Bạn sẽ không sử dụng '\ d +'? – Blender

+0

@Blender sẽ thực hiện cùng một điều – Anirudha

+0

Điều này thực sự đã thay thế "$ 1 | $ 2" nội dòng thành văn bản - như nó không phân tích cú pháp $ 1 là bất kỳ thứ gì nhưng chuỗi dự định tôi muốn. – JToland

2

(?<=\d), nên làm việc. Kỳ lạ thay, điều này chỉ làm việc nếu tôi sử dụng thay thế tất cả, nhưng không phải nếu tôi sử dụng thay thế duy nhất. Thay vào đó, bạn có thể sử dụng (\d), và thay thế bằng $1|

+0

Tôi không tin rằng Notepad ++ hỗ trợ các xác nhận 'Lookahead' và' Lookbehind'. – Nick

+0

@ Thực tế, nó có. Tôi có NP + + và điều này hoạt động (tìm kết quả phù hợp), nhưng chỉ thay thế chúng nếu tôi sử dụng thay thế tất cả. Nếu tôi cố gắng thay thế chúng theo từng trường hợp, nó sẽ không thay đổi. –

+0

Tôi tin rằng bạn, tôi chỉ nghe điều đó. Tôi đã không sử dụng NP + + cho regex trước. – Nick

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