用于匹配数据类型和精度的正则表达式
Regex for Match DataType and Precision
假设我们有以下字符串:
NUMBER
NUMBER(10)
我需要一个匹配这些字符串的正则表达式:
NUMBER => Group(0) = NUMBER
NUMBER(10) => Group(0) = NUMBER, Group(1) = 10
下面的表达式就是这样做的,但对我来说有点难看:
([^[\]]+)\(([^)]+)\)|([^[\]]+)
转换为 21 个步骤。
由于我不是正则表达式专家,有人可以帮助我改进此表达式以使其更快吗?
这看起来更简单:
([^(]+)(?:\((.+?)\))?
Regex101 说 "NUMBER"
有 6 个步骤,"NUMBER(10)"
有 13 个步骤。
您可以考虑在开头添加 ^
并在结尾添加 $
以更加严格,在这种情况下,每个输入示例的步数增加 2。
假设我们有以下字符串:
NUMBER
NUMBER(10)
我需要一个匹配这些字符串的正则表达式:
NUMBER => Group(0) = NUMBER
NUMBER(10) => Group(0) = NUMBER, Group(1) = 10
下面的表达式就是这样做的,但对我来说有点难看:
([^[\]]+)\(([^)]+)\)|([^[\]]+)
转换为 21 个步骤。 由于我不是正则表达式专家,有人可以帮助我改进此表达式以使其更快吗?
这看起来更简单:
([^(]+)(?:\((.+?)\))?
Regex101 说 "NUMBER"
有 6 个步骤,"NUMBER(10)"
有 13 个步骤。
您可以考虑在开头添加 ^
并在结尾添加 $
以更加严格,在这种情况下,每个输入示例的步数增加 2。