互斥正则表达式模式
Mutually Exclusive Regex Patterns
我正在尝试构建一组正确识别一组字段类型的正则表达式模式,但无法弄清楚如何让它们相互排斥。这些语法约定似乎总是有足够的重叠,以至于我进行了我不想进行的匹配。
变量:捕获全部
$字段
$field_with_underscores
标准字段:捕获table,捕获第一个点后的所有内容
$table.field
$table.field.subfield
$table.field.subfield_with_underscores
$table.field_with_underscores
$table.field_with_underscores.subfield
$table.field_with_underscores.subfield_with_underscores
自定义字段:捕获table,捕获c$
之后的所有内容
$table.c$字段
$table.c$field_with_underscores
自定义对象系统属性:捕获table,捕获对象,捕获$
之后的一切
$table.object$字段
$table.object$field_with_underscores
到目前为止,我有以下内容:
变量:工作
^$[a-zA-Z_]+$
标准字段:不起作用,选择自定义对象系统属性
$([a-zA-Z_]+)\.([^c$][a-zA-Z_\.]+)[\,]?
自定义字段:有效
$([a-zA-Z_]+)\.[c]$([a-zA-Z_]+)
自定义对象系统属性:有效
$([a-zA-Z_]+)\.(?!c$)([a-zA-Z_]+)$([a-zA-Z_]+)
有人可以帮帮我吗?我赶紧运行把头发拔出来...:\
^$([a-zA-Z_]+)(?:\.[a-zA-Z_\.]+)+$
您可以尝试使用标准 fields.See 演示。
https://www.regex101.com/r/bC8aZ4/8
或
$([a-zA-Z_]+)(?:(?!.*$)\.[a-zA-Z_\.]+)+
我的问题最好通过以下方式解决:
$([\w]+)\.((?!.+$)(\.?[\w]+)+)
我正在尝试构建一组正确识别一组字段类型的正则表达式模式,但无法弄清楚如何让它们相互排斥。这些语法约定似乎总是有足够的重叠,以至于我进行了我不想进行的匹配。
变量:捕获全部
$字段
$field_with_underscores
标准字段:捕获table,捕获第一个点后的所有内容
$table.field
$table.field.subfield
$table.field.subfield_with_underscores
$table.field_with_underscores
$table.field_with_underscores.subfield
$table.field_with_underscores.subfield_with_underscores
自定义字段:捕获table,捕获c$
之后的所有内容$table.c$字段
$table.c$field_with_underscores
自定义对象系统属性:捕获table,捕获对象,捕获$
之后的一切$table.object$字段
$table.object$field_with_underscores
到目前为止,我有以下内容:
变量:工作
^$[a-zA-Z_]+$
标准字段:不起作用,选择自定义对象系统属性
$([a-zA-Z_]+)\.([^c$][a-zA-Z_\.]+)[\,]?
自定义字段:有效
$([a-zA-Z_]+)\.[c]$([a-zA-Z_]+)
自定义对象系统属性:有效
$([a-zA-Z_]+)\.(?!c$)([a-zA-Z_]+)$([a-zA-Z_]+)
有人可以帮帮我吗?我赶紧运行把头发拔出来...:\
^$([a-zA-Z_]+)(?:\.[a-zA-Z_\.]+)+$
您可以尝试使用标准 fields.See 演示。
https://www.regex101.com/r/bC8aZ4/8
或
$([a-zA-Z_]+)(?:(?!.*$)\.[a-zA-Z_\.]+)+
我的问题最好通过以下方式解决:
$([\w]+)\.((?!.+$)(\.?[\w]+)+)