Posix character classes sử dụng một ký hiệu [:alpha:]
, được sử dụng bên trong một biểu thức chính quy như:
/[[:alpha:][:digit:]]/
Bạn sẽ cần phải cuộn xuống một cách để có được thông tin Posix trong liên kết ở trên. Từ tài liệu:
Biểu thức khung POSIX cũng tương tự như các lớp ký tự. Chúng cung cấp một giải pháp thay thế di động ở trên, với lợi ích bổ sung mà chúng bao gồm các ký tự không phải ASCII. Ví dụ,/\ d/chỉ khớp các chữ số thập phân ASCII (0-9); trong khi/[[: chữ số:]]/khớp với bất kỳ ký tự nào trong thể loại Unicode Nd.
/[[:alnum:]]/ - Alphabetic and numeric character
/[[:alpha:]]/ - Alphabetic character
/[[:blank:]]/ - Space or tab
/[[:cntrl:]]/ - Control character
/[[:digit:]]/ - Digit
/[[:graph:]]/ - Non-blank character (excludes spaces, control characters, and similar)
/[[:lower:]]/ - Lowercase alphabetical character
/[[:print:]]/ - Like [:graph:], but includes the space character
/[[:punct:]]/ - Punctuation character
/[[:space:]]/ - Whitespace character ([:blank:], newline,
carriage return, etc.)
/[[:upper:]]/ - Uppercase alphabetical
/[[:xdigit:]]/ - Digit allowed in a hexadecimal number (i.e., 0-9a-fA-F)
Ruby cũng hỗ trợ các phi POSIX lớp nhân vật sau đây:
/[[:word:]]/ - A character in one of the following Unicode general categories Letter, Mark, Number, Connector_Punctuation
/[[:ascii:]]/ - A character in the ASCII character set
# U+06F2 is "EXTENDED ARABIC-INDIC DIGIT TWO"
/[[:digit:]]/.match("\u06F2") #=> #<MatchData "\u{06F2}">
/[[:upper:]][[:lower:]]/.match("Hello") #=> #<MatchData "He">
/[[:xdigit:]][[:xdigit:]]/.match("A6") #=> #<MatchData "A6">
Nguồn
2012-09-05 07:16:51
tôi đã tạo [mở rộng-ngoặc] (https://www.npmjs.com/package/ mở rộng dấu ngoặc đơn), nếu bạn quan tâm đến việc xem triển khai javascript phù hợp với các lớp nhân vật posix – jonschlinkert