Tôi muốn xóa dấu gạch chéo theo sau khỏi một chuỗi. Ví dụ: nếu tôi có một chuỗi gọi là $ test = "test /". Làm cách nào để xóa dấu gạch chéo ở cuối?Có biểu thức chính quy nào để xóa dấu gạch chéo ở Perl không?
Trả lời
Nếu bạn chắc chắn rằng có là một trong/ở cuối tất cả các thời gian, bạn có thể sử dụng chức năng Chop:
$test = "test/";
$test = chop($test);
Nếu bạn không chắc chắn bạn có thể làm:
$test = "test/";
$test = $1 if($test=~/(.*)\/$/);
Với một biểu thức chính quy làm: $test =~ s/\/$//
Ngoài ra, nếu bạn chắc chắn ký tự cuối cùng sẽ là một dấu gạch chéo, bạn có thể sử dụng chức năng chop: chop $test
Tôi muốn viết '$ test = ~ s [/ $] []' để dễ đọc. – Quentin
Sử dụng neo \ z để có được kết thúc tuyệt đối của chuỗi. –
Xin lỗi vì đã làm phiền, nhưng có vẻ như regex này không hoạt động cho tất cả các thư mục, * ngoại trừ * khi sử dụng 'thư mục gốc' * ->/<-.Nó sẽ chỉ đơn giản là loại bỏ đường dẫn gốc, mà không phải là quá tốt trong một số trường hợp, bởi vì nó sẽ bắt đầu với một dấu gạch chéo (paradoxon?). ;-) – Semo
Bạn có thể sử dụng toán tử s///
thay:
$test =~ s{/\z}{};
Tâm trí tuyệt vời nghĩ như nhau .... – justintime
Sử dụng neo \ z để có được kết thúc tuyệt đối của chuỗi. –
Cá nhân tôi sẽ nói lại điều này để tránh hỗn hợp "\" và "/"
$test =~ s|/$||
Nếu bạn sử dụng "|" bạn không cần phải trích dẫn "/"
Sử dụng neo \ z để có được kết thúc tuyệt đối của chuỗi. –
đoạn này sẽ chăm sóc dấu slashes, ngoại trừ thư mục gốc:
#!/usr/bin/perl
my $test = './';
$test =~ s{(.+)/\z}{\1};
print $test."\n";
Dưới đây là cách hoạt động:
Phần đầu tiên của cụm từ thông dụng - s {(. +)/\ Z} - xác định nhóm trong ngoặc đơn (). Điều này được tham chiếu bởi \ 1 trong phần thứ hai của cụm từ thông dụng - {\ 1}. Trong nhóm này, tôi đã xác định một hoặc nhiều ký tự - + - theo sau ngay lập tức bằng dấu gạch chéo, sau đó là đầu cuối tuyệt đối của chuỗi - \ z.
Các biểu hiện thường xuyên tiết kiệm tất cả mọi thứ trong phạm vi khung, sau đó được sử dụng như \ 1 trong đặc tả thay thế
này hoạt động rất giống với một chiến lược sed điển hình, tức là (phần thứ hai, về cơ bản.):
echo "./" | sed -e 's:\(..*\)/$:\1:'
tôi hy vọng điều này là trợ giúp cho bạn.
Rất vui khi thấy một địa chỉ liên quan đến vấn đề thực tế của thư mục gốc. Hai ý tưởng bổ sung: 1) Tôi tin rằng cách thay thế được đề xuất để thay thế ảnh chụp trong phần thay thế bằng "$" thay vì "\", mặc dù cả hai đều hoạt động. 2) Có thể hiệu quả hơn khi chỉ chụp nhân vật ngay trước dấu /, thay vì có khả năng rất nhiều ký tự. Kết hợp cả hai thay đổi đó, tôi sẽ thực hiện: 's {(.)/\ Z} {$ 1}' –
- 1. biểu thức chính quy và dấu gạch chéo chuyển tiếp
- 2. Giá trị biểu thức chính quy Java.split ("\\."), "Dấu gạch chéo ngược" chia cho ký tự?
- 3. Làm thế nào để kết thúc một biểu thức chính quy với một dấu gạch chéo trong Javascript
- 4. Perl chia và biểu thức chính quy
- 5. Xóa dấu gạch chéo ở đường dẫn trong WiX
- 6. Biểu thức chính quy - Ruby vs Perl
- 7. Xóa dấu gạch chéo đầu và cuối/
- 8. Làm cách nào để xóa dấu gạch chéo khỏi chuỗi?
- 9. Có cách nào để đánh giá số lần biểu thức chính quy Perl đã khớp không?
- 10. Xóa dấu gạch chéo theo sau
- 11. phép - (gạch ngang) trong biểu thức chính quy
- 12. Biểu thức chính quy JavaScript
- 13. Khớp với dấu gạch ngang Unicode trong Biểu thức chính quy Java?
- 14. Biểu thức chính quy Javascript Xóa không gian
- 15. .htaccess có hoặc không có dấu gạch chéo
- 16. Biểu thức chính quy theo kiểu perl trong emacs
- 17. trận đấu trên nhiều dòng perl biểu thức chính quy
- 18. Làm cách nào để tạo đường dẫn thư mục có dấu gạch chéo ngược hoặc dấu gạch chéo chéo?
- 19. Tại sao không có tiêu chuẩn biểu thức chính quy?
- 20. Làm thế nào để thay thế dấu gạch chéo ngược với dấu gạch chéo ngược
- 21. biểu thức chính quy không có ký tự
- 22. Xóa bỏ dấu gạch chéo từ tệp nhập hàng loạt
- 23. Tôi có cần phải thoát khỏi dấu chấm phẩy trong một biểu thức chính quy Perl không?
- 24. Cụm từ thông dụng: Chuỗi trận đấu giữa hai dấu gạch chéo nếu chuỗi đó chứa dấu gạch chéo thoát
- 25. Cần biểu thức chính quy để xác nhận tên
- 26. Apache viết lại quy tắc mà làm việc có hoặc không có một dấu gạch chéo
- 27. Làm cách nào để đánh dấu các từ trùng lặp liên tiếp bằng biểu thức chính quy Perl?
- 28. Tại sao bạn cần dấu gạch chéo ở cuối URL?
- 29. Biểu thức chính quy để tìm các không gian
- 30. Thêm dấu gạch chéo ở cuối mỗi url?
Bạn đã đọc tài liệu * *? ví dụ. http://perldoc.perl.org/perreftut.html? – Ether