REGEX đơn giản - Cách đưa tất cả các dòng bắt đầu bằng từ | | - [Đường ống] đến dòng trên kết thúc bằng [Đường ống]


1

Giải trình

Với sự giúp đỡ của REGEX, tôi đang cố gắng chuyển đổi cơ sở dữ liệu từ đồng nghĩa tiếng Ý sang định dạng sau:

synonym1|synonym2|synonym3
anothersynonym1|anothersynonym2
...........
......

Tại thời điểm này, tôi có cơ sở dữ liệu từ đồng nghĩa chưa được chuyển đổi ở định dạng này:

a|       - word
|per     -it's synonym
|verso   -another synonym of the word "a" in the second row
abate|    - second word
|priore|superiore
abbacchiare|
|avvilire|deprimere
abbacchiarsi|
|abbattersi|abbiosciarsi|accasciarsi

Làm rõ: Tôi muốn sử dụng Biểu thức chính quy để khớp với tất cả các dòng bắt đầu bằng "|" (đường ống) và di chuyển chúng đến dòng trên để hợp nhất với từ khớp với dòng kết thúc bằng (Đường ống) và cũng di chuyển trong các hàng bắt đầu bằng "|" .

Ví dụ về cơ sở dữ liệu được chuyển đổi từ cơ sở dữ liệu chưa được chuyển đổi ở trên

a|per|verso
abate|priore|superiore
abbachiare|avvilire|deprimere
abbachiarsi|abbattersi|abbiosciarsi|accasciarsi

Ai đó có thể giúp tôi tìm EXPRESSION chính xác bằng cách sử dụng chức năng TÌM và THAY THẾ với bất kỳ trình soạn thảo văn bản nào không?

Câu trả lời:


0

Nếu bạn đang sử dụng Windows, bạn có thể sử dụng Chế độ tìm kiếm mở rộng của Notepad ++ để thực hiện việc này theo 2 bước:

1: Thay thế |\r\n|bằng |- Điều này sẽ tìm thấy tất cả các từ đồng nghĩa đầu tiên

thay thế đầu tiên

a|per
|verso
abate|priore|superiore
abbacchiare|avvilire|deprimere
abbacchiarsi|abbattersi|abbiosciarsi|accasciarsi

2: Thay thế \r\n|bằng |- Điều này sẽ tìm thấy tất cả các từ đồng nghĩa tiếp theo

thay thế thứ hai

a|per|verso
abate|priore|superiore
abbacchiare|avvilire|deprimere
abbacchiarsi|abbattersi|abbiosciarsi|accasciarsi

Cảm ơn bạn rất, rất nhiều, rất mô tả ngay cả với ảnh chụp màn hình, giải pháp của bạn đã hoạt động hoàn hảo chính xác như bạn đã viết !!!
Daniel Foltynek

0
perl -ne 'chomp; print /^(.*)\|\s*$/?"\n$1":$_' filename

a|per|verso
abate|priore|superiore
abbacchiare|avvilire|deprimere
abbacchiarsi|abbattersi|abbiosciarsi|accasciarsi

Hoặc, nếu bạn cầu kỳ về các dòng mới và dẫn đầu:

perl -ne 'chomp; print /^(.*)\|\s*$/?$.==1?$1:"\n$1":$_;END{print"\n"}' filename
a|per|verso
abate|priore|superiore
abbacchiare|avvilire|deprimere
abbacchiarsi|abbattersi|abbiosciarsi|accasciarsi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.