[英]Way to implement better regex in Node.js
我正在使用Node.js作為項目,我發現Javascript的正則表達式語法非常有限。 特別是缺乏外觀是殺了我。 我正在嘗試使用正則表達式將字符串解析為句子,但我想檢查常見的縮寫,例如先生和太太。這樣我就不會破壞句子。 他們的Node.js庫是否添加了正則表達式功能,如果不是,那么一個好的行動方案是什么?
這是javascript正則表達式的難點,
一種避免特定問題的方法:
/((?:Mrs?\.)|[^\.]+)+/ # match all that is not a dot or Mr. or Mrs.
有關更多技巧,您可以查看此站點: http : //blog.stevenlevithan.com/archives/javascript-regex-lookbehind
Node.js基於v8引擎,它的正則表達式引擎是v8的一部分。 v8項目位於此處: https : //code.google.com/p/v8/ 。 正則表達式引擎來自此文件: https : //code.google.com/p/v8/source/browse/trunk/src/ia32/regexp-macro-assembler-ia32.cc?r = 4966 。 您可以在原則上分叉項目並添加所需的功能。 我懷疑這會比它的價值更多。
正則表達式通常不是為解析而設計的。 Node.js有很多解析庫,可以在這里找到: https ://npmjs.org/search?q = language + parsing。 我個人推薦hot-cocoa( https://github.com/olleicua/hot-cocoa ),因為我自己做了它,它完全符合我的目的。
最后,如果你的目標是匹配任何一個單詞或兩個單詞,如果第一個單詞是'Mr'或'Mrs',那么這樣的東西可能會起作用:
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' ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.