RegExp:识别不良正则表达式

时间:2016-06-07 02:26:15

标签: javascript regex string

我正在使用正则表达式,并且很好奇RegExp的作者如何确定他们编写的模式的改进。例如,这里是用于识别简单货币表达式的模式(为简单起见,省略文字符号或AS2 / AS3标识符)。对我来说,这看起来非常简洁,当在JS环境中运行时,它准确地识别了我的测试用例。然而,我可以看到我使用了3个IF / ELSE语句,也许正是这个用例让我的表达时间超过了它应该或需要的时间。 RegExp优化有一般的经验法则吗?或者只是语言的本质使得案例表明"如果它起作用,它就是正确的表达式"?

感谢阅读和您的反馈,建议或批评。

RegExp模式:

/((\s\.){1})|((\d+){1})((\.\d+|\,\d+)|(\d+)){1,}/

RegExp细分:

/* A */ ((\s\.){1}) /** whitespace followed by period once **/

/* B */ ((\d+){1}) /** any number of digits occurs once before broken pattern **/       

((\s\.){1})|((\d+){1}) /** either pattern A or B **/

/* C */ (\.\d+|\,\d+) /** either period or comma preceeding a pattern of digits **/

/* D */ (\d+) /** any number of digits occurs before broken pattern **/

((\.|\,)|(\d+)){1,} /** either pattern A or B repeated at least once **/

/* Final */

((\s\.){1})|((\d+){1})((\.\d+|\,\d+)|(\d+)){1,}

0 个答案:

没有答案