2012-12-01 25 views

Trả lời

14
Find what: ^(\S+)(?=\s*-) 
Replace with: \U$1 

Điều này làm gì? Mẫu tìm kiếm khớp với nhiều ký tự không dấu cách ở đầu dòng càng tốt (\S+) và chụp chúng trong biến $1 vì dấu ngoặc đơn. Sau đó sau một lookahead mà khẳng định rằng "từ" này được theo sau bởi một dấu nối (không có bất cứ điều gì khác ở giữa). Lookahead này không thực sự được bao gồm trong trận đấu, vì vậy nó sẽ không bị xóa/thay thế.

Việc thay thế bắt đầu bằng \U cho biết "xuất tất cả mọi thứ sau đây trong trường hợp ngoại trừ khi bạn dừng điều này bằng \E". Sau đó, $1 ghi lại những gì chúng tôi đã đối sánh với \S+ (trong trường hợp của bạn là term). Nhưng trong trường hợp trên.

Đảm bảo cập nhật lên Notepad ++ 6. Trước đó, cụm từ thông dụng có chút kỳ quặc.

Here is the documentation of what's possible in the replacement string.

EDIT:

Tôi đoán dòng thực tế của bạn có thể là thú vị hơn một chút so với chỉ có một từ vào đầu dòng và sau đó là gạch nối. Nhưng từ ví dụ của bạn, tôi không thể nói. Tuy nhiên, để làm việc này cho một số tùy ý các từ và bỏ qua khoảng trắng ở đầu dòng (miễn là có một gạch nối ở đâu đó trong dòng), bạn có thể làm một cái gì đó như thế này:

Find what: ^(([ \t]*[^\s-]+)*)(?=[ \t]*-) 

nhưng không thực tế ví dụ đầu vào, tôi e rằng bạn phải tự tìm ra mẫu tìm kiếm phù hợp.

+0

+1 điều này thật tuyệt! – Anirudha

+0

bây giờ tôi sẽ luôn luôn tham khảo 'tài liệu' trước khi nhảy đến kết luận – Anirudha

+0

Cảm ơn bạn rất nhiều, tôi đã không nhận ra điều đó, nhưng nó hoạt động! –

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