2013-06-17 22 views
5

Tôi đang sử dụng Node.js cho một dự án và tôi đang tìm cú pháp regex của Javascript rất hạn chế. Cụ thể là thiếu sự trông nom đang giết chết tôi. Tôi đang cố gắng sử dụng regex để phân tích chuỗi thành các câu, nhưng tôi muốn kiểm tra các từ viết tắt phổ biến như ông và bà để tôi không phá vỡ các câu. Là một thư viện Node.js của họ có thêm các tính năng regex, và nếu không phải là một hành động tốt sẽ là gì?Cách để thực hiện regex tốt hơn trong Node.js

+0

'regex' tìm kiếm NPM. hoặc: https://npmjs.org/search?q=regex –

+0

http://xregexp.com/ làm việc với Node.js, nhưng, than ôi, không thể cung cấp xác nhận tìm kiếm. –

Trả lời

1

Node .js dựa trên động cơ v8 và động cơ regex của nó là một phần của v8. Dự án v8 được lưu trữ tại đây: https://code.google.com/p/v8/. Động cơ regex xuất phát từ tập tin này: https://code.google.com/p/v8/source/browse/trunk/src/ia32/regexp-macro-assembler-ia32.cc?r=4966. Bạn có thể trong ngã ba chính của dự án và thêm các tính năng mong muốn. Tôi nghi ngờ điều này sẽ có nhiều nỗ lực hơn là giá trị.

Cụm từ thông dụng thường không được thiết kế để phân tích cú pháp. Có nhiều thư viện phân tích cú pháp cho Node.js có thể tìm thấy tại đây: https://npmjs.org/search?q=language+parsing. Cá nhân tôi có thể giới thiệu ca cao nóng (https://github.com/olleicua/hot-cocoa) khi tôi tự làm nó và nó hoạt động hoàn hảo cho mục đích của tôi.

Cuối cùng, nếu mục tiêu của bạn chỉ là để phù hợp với bất kỳ từ hoặc hai từ nếu là người đầu tiên là 'ông' hay 'bà' sau đó một cái gì đó như thế này có thể làm việc:

var text = 'Mr Potter and Mrs Smith were walking to the house of Mrs Sullivan'; 
text.match(/(?:Mr |Mrs)?\w+/g); 
// returns: [ 'Mr Potter', 'and', 'Mrs Smith', 'were', 'walking', 'to', 'the', 
//   'house', 'of', 'Mrs Sullivan' ] 
Các vấn đề liên quan