在Node.js中实现更好的正则表达式的方法
Way to implement better regex in Node.js
我正在使用Node.js的一个项目,我发现Javascript的正则表达式语法非常有限。尤其是没有后视人的感觉简直要了我的命。我试图使用regex将字符串解析成句子,但是我想检查常见的缩写,如Mr.和Mrs.,这样我就不会把句子弄乱。他们的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。我个人可以推荐热可可(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' ]
- 使用replace方法替换innerHTML以及在Javascript中不起作用的正则表达式
- 如何在字符串上组合JS replace()方法中的3个正则表达式模式
- Javascript 将方法替换为数组和正则表达式
- 比这更好的正则表达式方法
- 在数组中存储 JS 正则表达式捕获组的最佳方法
- 正则表达式 - 替换方法从字符串中删除运算符产生不希望的结果
- 正则表达式和数组:最有效的方法
- 进行此正则表达式替换的好方法
- 使用正则表达式时出现 Javascript 错误 - 对象不支持此属性或方法
- 最佳正则表达式方法
- 在 Javascript 中使用替换方法插入的正则表达式
- 指定与行末尾的句点匹配的JavaScript正则表达式的正确方法是什么
- 正则表达式/替换方法Javascript
- javascript中的正则表达式和替换方法
- 有没有任何方法可以得到正则表达式模式的所有可能结果
- 为什么在调用.test()方法时,将JavaScript正则表达式保存到变量会产生不同的结果
- 使用正则表达式的javascript中的String.replace方法
- 在Node.js中实现更好的正则表达式的方法
- 在javascript正则表达式中检查“this AND that WITHOUT this”的方法
- Javascript正则表达式"方法:记忆bug / effect