【发布时间】:2016-11-30 04:13:57
【问题描述】:
如果我创建了一个允许用户在我的应用程序中创建公式的正则表达式。我的正则表达式工作正常,但是我希望用户使用左括号和右括号。
我目前的正则表达式是:
(
^[(N|R)]: //START WITH N: OR R:
(?:
(?:
[-.0-9]+|BT|PT|PN|PR //ALLOW 48.934, BT, PT, PN OR PR
)
(?:
\+|\*|\-|\/ //ALLOW OPERATORS /,*,+ and -
)
)+ //REPEAT x TIMES
(?:
[-.0-9]+|BT|PT|PN|PR //MUST END WITH 48.934, BT, PT, PN OR PR
)
(?:
:V //ADD MANDATORY :V
)
(?:
[-.0-9]+ //CLOSE REGEX WITH NUMBER
)
)
正则表达式当前工作的几个例子:
N:0.3*BT/PN*PR:V1
N:2000+PN/BT:V0.5
R:BT*PN-500:V2
我希望正则表达式与 () 一起使用,它目前没有几个示例:
N:(2000+PN)/BT:V0.5
R:BT*(PN-500):V2
我已经阅读了有关创建 if / else 结构的正面和负面前瞻性的信息,但我似乎无法找到适合我需要的逻辑。
如果有人能指导我正确的方向,不胜感激。
附:我正在使用 javascript 正则表达式引擎。
【问题讨论】:
-
你也需要嵌套括号吗?
-
@gcampbell 不,不需要嵌套括号。
-
你在使用 XRegExp 吗?
-
@gcampbell 目前没有,但我愿意将其包含在应用程序中。你能告诉我这是否是 XRegExp 的正确文件吗? github.com/slevithan/xregexp/blob/master/xregexp-all.js
标签: javascript php regex