Tôi vẫn chưa quen với cú pháp vim regex. Tôi có mã này:Vim tích cực lookahead regex
rename_column :keywords, :textline_two_id_4, :textline_two_id_4
Tôi muốn đối sánh id cuối cùng với dấu hiệu tích cực trong cú pháp regex VIM.
Bạn sẽ làm như thế nào?
\[email protected]=_\d$
Điều này không có tác dụng. làm việc
cú pháp perl này:
id(?=_\d$)
Edit - câu trả lời:
/id\(_\d$\)\@=
Ai đó có thể giải thích cú pháp?
Cảm ơn. Tại sao tôi phải bao quanh văn bản trước \ @ = với()? – Hendrik
@Hendrik không có '()' làm thế nào mà động cơ regex có thể biết, phần nào là phần khớp với chiều rộng bằng không? – Kent
@Hendrik các dấu ngoặc đơn là cần thiết nếu những thứ trước mặt cái nhìn là một nhóm các nguyên tử. Trong trường hợp của bạn, bạn có ba nguyên tử '_',' \ d' và '$'. Vì vậy, nếu không có các dấu ngoặc đơn, lookahead chỉ tìm kiếm một '$' mà không phải là rất hữu ích. Các dấu ngoặc đơn được coi là một nguyên tử để bạn có thể tra cứu cho '_ \ d $' – FDinoff