Có cách nào đơn giản để bỏ qua khoảng trắng trong chuỗi mục tiêu khi tìm kiếm các kết quả phù hợp sử dụng mẫu biểu thức chính quy không? Ví dụ: nếu tìm kiếm của tôi là "mèo", tôi muốn "c ats" hoặc "ca ts" để khớp. Tôi không thể loại bỏ khoảng trống trước bởi vì tôi cần tìm chỉ mục bắt đầu và kết thúc của trận đấu (bao gồm bất kỳ khoảng trắng nào) để làm nổi bật kết quả trùng khớp đó và bất kỳ khoảng trống nào cần phải có cho mục đích định dạng.Làm cách nào để bỏ qua khoảng trống trong chuỗi chủ đề biểu thức chính quy?
Trả lời
Bạn có thể gắn các ký tự khoảng trắng tùy chọn \s*
ở giữa mọi ký tự khác trong regex của bạn. Mặc dù được cấp, nó sẽ có một chút dài dòng.
/cats/
->/c\s*a\s*t\s*s/
Bạn có thể đặt \s*
Inbetween mỗi nhân vật trong chuỗi tìm kiếm của bạn vì vậy nếu bạn đang tìm kiếm con mèo bạn sẽ sử dụng c\s*a\s*t\s*s\s*s
Đó là dài nhưng bạn có thể xây dựng các chuỗi động của khóa học.
Bạn có thể nhìn thấy nó làm việc ở đây: http://www.rubular.com/r/zzWwvppSpE
Nếu bạn chỉ muốn cho phép không gian, sau đó
\bc *a *t *s\b
nên làm điều đó. Để cũng cho phép các tab, sử dụng
\bc[ \t]*a[ \t]*t[ \t]*s\b
Tháo \b
neo nếu bạn cũng muốn tìm cats
trong những từ như bobcats
hoặc catsup
.
Phát biểu bình luận Steven để trả lời Sam Dufel của
Cảm ơn, có vẻ như đó là con đường để đi. Nhưng tôi chỉ nhận ra rằng tôi chỉ muốn các ký tự khoảng trống tùy chọn nếu chúng theo một dòng mới. Ví dụ: "c \ n ats" hoặc "ca \ n ts" phải khớp nhau. Nhưng sẽ không muốn "c ats" để phù hợp nếu không có dòng mới. Bất kỳ ý tưởng về cách đó có thể được thực hiện?
này nên làm như lừa:
/c(?:\n\s*)?a(?:\n\s*)?t(?:\n\s*)?s/
Xem this page cho tất cả các biến thể khác nhau của 'mèo' rằng đây phù hợp.
Bạn cũng có thể giải quyết điều này bằng cách sử dụng conditionals, nhưng chúng không được hỗ trợ trong hương vị javascript của regex.
Rất xấu xí. Phải có cách tốt hơn. –
Bạn có thể làm cho nó dễ đọc hơn trong cú pháp JS (mặc dù kỹ thuật này sẽ hoạt động trong các ngôn ngữ khác) với: 'new RegExp ('cats'.split (' '). Join (' (?: \ N \ s *)? ')) ' – brianary
- 1. Bỏ qua khoảng trắng trong các mẫu biểu thức chính quy Javascript?
- 2. Khoảng cách Levenshtein trong biểu thức chính quy
- 3. Làm cách nào để bật chế độ biểu thức chính quy không phân biệt khoảng trắng trong PHP?
- 4. Làm cách nào để xác thực Biểu thức chính quy?
- 5. Biểu thức chính quy Javascript - chuỗi để đối tượng RegEx
- 6. Vấn đề hiệu suất biểu thức chính quy Java
- 7. Vấn đề biểu thức chính quy đơn giản (Regex) (.net)
- 8. Biểu thức chính quy JavaScript
- 9. biểu thức chính quy trong phân tách chuỗi javascript, vấn đề tương thích với trình duyệt
- 10. Bỏ qua khoảng trống bằng PEG.js
- 11. Biểu thức chính quy để tìm các không gian
- 12. Biểu thức chính quy của Python
- 13. Cách phân loại/phân loại chuỗi theo quy tắc biểu thức chính quy trong Python
- 14. tách một chuỗi có thoát khỏi chuỗi sử dụng biểu thức chính quy trong Java
- 15. Làm cách nào để tạo biểu thức chính quy cho điều này trong android?
- 16. Biểu thức chính quy Java để khớp với các ký tự khoảng trắng _all_
- 17. Biểu thức chính quy Javascript khớp với hai chuỗi
- 18. Quy tắc biểu thức chính quy trong Outlook 2007?
- 19. Biểu thức chính quy tiêu cực lookahead
- 20. Biểu thức chính quy cho kho git
- 21. Làm thế nào để loại bỏ khoảng trống trong một chuỗi?
- 22. Email Xác nhận biểu thức chính quy
- 23. Clojure multiline biểu thức chính quy
- 24. Perl chia và biểu thức chính quy
- 25. Làm cách nào để diễn tả ":" nhưng không phải trước "\" trong biểu thức chính quy Java?
- 26. Làm cách nào để sử dụng biến trong biểu thức chính quy?
- 27. Biểu thức chính quy kết thúc
- 28. TCL mong đợi biểu thức chính quy
- 29. Có biểu thức chính quy tương thích Perl để cắt khoảng trắng từ cả hai mặt của chuỗi không?
- 30. Làm cách nào để chỉ trả lại biểu thức chính quy phù hợp khi tôi chọn chuỗi (grep) trong PowerShell?
Cảm ơn, có vẻ như đó là cách để đi. Nhưng tôi chỉ nhận ra rằng tôi chỉ muốn các ký tự khoảng trống tùy chọn nếu chúng theo một dòng mới. Ví dụ: "c \ n ats" hoặc "ca \ n ts" phải khớp nhau. Nhưng sẽ không muốn "c ats" để phù hợp nếu không có dòng mới. Bất kỳ ý tưởng về cách đó có thể được thực hiện? – Steven