2012-11-19 15 views
5

Tôi biết các công cụ biểu thức chính quy nhất, bao gồm một trong JavaScript có \b để khớp với một ranh giới từ, có thể là ở đầu hoặc cuối của từ.Có JavaScript tương đương với biểu thức chính quy Vim bắt đầu và kết thúc của nguyên tử từ " <" and ">" không?

Nhưng Vim cũng có hai cụ thể hơn nguyên tử biểu thức chính quy:

Liệu JavaScript có một tương đương với các nguyên tử, và nếu không muốn nói là có một cách để thể hiện ngữ nghĩa chính xác hơn của họ theo cách khác?

+0

Thực ra tôi chỉ mới bắt đầu lo lắng rằng '\ <' and '\>' thực sự là từ Vim ... có thể từ cả hai. Kiểm tra ngay bây giờ ... – hippietrail

+0

Nhưng sẽ không có bất kỳ ranh giới từ nào là cả sự bắt đầu của một số từ và kết thúc của một từ khác? Sự khác biệt mà bạn đang cố gắng xử lý là gì? –

+0

@MarkReed, không, vì ranh giới từ chỉ khớp với vị trí trực tiếp trước/sau một từ và KHÔNG, ví dụ: khoảng trắng trước/sau từ. – stema

Trả lời

7

Theo như tôi biết không có gì được xác định trước. Nhưng những gì bạn có thể làm là thêm lookahead vào ranh giới từ, để kiểm tra xem đó có phải là phần đầu hay phần cuối của từ đó không.

\< sẽ là \b(?=\w). Điều này sẽ kiểm tra nếu sau từ ranh giới một ký tự từ được theo dõi ==> bắt đầu từ. See this as example on regexr

\> sau đó sẽ là \b(?!\w). Điều này sẽ kiểm tra nếu sau khi ranh giới từ không phải là một ký tự từ sau ==> kết thúc của từ

+0

+1, nhưng bạn nên sử dụng '(?! \ W)' thay vì '(? = \ W)' cho trường hợp thứ hai. –

+0

@Tim, cảm ơn nhận xét của bạn, tôi đã thêm nó vào giải pháp. – stema

+0

Nó thực sự không chỉ rõ ràng hơn - giải pháp của bạn sẽ không phù hợp với một ranh giới từ ở cuối chuỗi. –

Các vấn đề liên quan