匹配数据类型和精度的正则表达式

时间:2016-07-02 17:42:44

标签: regex regex-group

假设我们有以下字符串:

NUMBER
NUMBER(10)

我需要一个与这些字符串匹配的正则表达式:

NUMBER      => Group(0) = NUMBER
NUMBER(10)  => Group(0) = NUMBER, Group(1) = 10

以下表达式可以做到这一点,但对我来说似乎有点难看:

([^[\]]+)\(([^)]+)\)|([^[\]]+)

这被翻译成21步。 由于我不是正则表达式专家,有人可以帮助我改进这个表达式以使其更快吗?

1 个答案:

答案 0 :(得分:1)

这似乎更简单:

([^(]+)(?:\((.+?)\))?

Regex101说"NUMBER"有6个步骤,"NUMBER(10)"有13个步骤。

您可以考虑将^添加到开头,将$添加到结尾更严格,在这种情况下,每个输入示例的步数增加2。