Java正则表达式匹配任何与给定模式匹配且不在给定字符之间的内容
我有一个对给定字符串应用正则表达式规则的解析器。 每个规则的第一个匹配项将被删除并放置到一个节点中
其中一条规则试图找到变量,这些变量位于仅由数字、字母、下划线和破折号组成的|
符号之间。
实现这一点的规则如下:(?:\|)[a-zA-Z0-9_-]+(?:\|)+?
例如,我们有一个表达式:part1+250+|part2|+part3
它与变量|part2|
匹配
现在我需要另一个匹配常量的规则,它只能由(数字、字母、下划线、破折号和空格)组成。 但它应该而不是匹配变量
看看同一个示例表达式,它应该与以下内容匹配:
part1
,250
,part3
它应该匹配任何字符(数字、字母、空格、下划线、破折号)和|
符号之间的非
如何使用单个正则表达式实现这一点
# 1 楼答案
以下是解决方案的单一模式实现:
输出
注释
null
并推断是否找到了“变量”、“常量”或什么都没有李>