2012-11-24 32 views
42

Trình tự thoát \K đặt lại phần đầu của trận đấu thành vị trí hiện tại trong danh sách mã thông báo (điều này chỉ ảnh hưởng đến nội dung được báo cáo là toàn bộ).Hỗ trợ K trong regex

Môi trường/ngôn ngữ/phiên bản nào hỗ trợ \K (giữ) trong các công cụ biểu thức chính quy của nó và cần sử dụng thư viện nào (nếu có) để sử dụng tính năng này trong các mẫu?

+1

Để hỗ trợ tìm kiếm, '\ K' còn được gọi là một biểu thức chính quy [metacharacter] (http://en.wikipedia.org/wiki/Metacharacter). – DavidRR

Trả lời

45

Chuỗi \K thoát được hỗ trợ bởi nhiều công cụ, ngôn ngữ hoặc các công cụ, chẳng hạn như:

  • tăng (từ ???)
  • grep -P                                                                                                         ← sử dụng PCRE
  • Oniguruma (since 5.13.3)
  • PCRE (since 7.2)
  • Perl (since 5.10.0)
  • PHP (since 5.2.4)
  • Ruby (kể từ 2.0.0)
  • Notepad ++ (từ 6,0)

...và (cho đến nay) không được hỗ trợ bởi:

  • .NET
  • awk
  • bash
  • GNU
  • ICU
  • Java
  • Javascript
  • Objective-C
  • POSIX
  • Python
  • Qt/QRegExp
  • sed
  • Tcl
  • vim
  • XML
  • XPath
+2

Cập nhật: Nó được hỗ trợ trong Ruby là 2.0.0 do sử dụng động cơ Onigmo (một nhánh của Oniguruma). –

+0

AutoIt cũng vậy. Bạn không chắc chắn nó đã hỗ trợ nó trong bao lâu. – James

+2

Câu trả lời này đã được thêm vào [FAQ Overflow Regular Expression FAQ] (http://stackoverflow.com/a/22944075/2736496), dưới "Lookarounds". – aliteralmind