我有4种不同类型的输入:
- 苹果数>;=18个橙子
- 苹果数>;=18岁
- 苹果>;=18个橙子
- 苹果
我需要提取组作为
{group1} OF {group2} AS {group 3}
where,
group1 = 'COUNT'
group2 = 'apples >= 18'
group3 = 'apples'
对于第一个输入,我可以使用以下正则表达式
`/(.*) OF (.*) AS (.*)/g`.
我是否必须使用单独的正则表达式来处理所有这些输入,还是一个正则表达式来处理所有这些输入
Tags:
您可以使具有
OF
和AS
可选的部件,如:正如您在regex101上看到的,我们因此捕获了三个组:
OF
之前的部分、中间部分和AS
之后的部分regex101引擎还显示捕获:
因此,我们使用
(..)?
部分使某些元素成为可选的,并使用.*?
进行非贪婪捕获但是请注意,如果表达式包含多个
OF
或AS
,则解析器将第一个OF
作为分隔符,第一个AS
作为分隔符。所以COUNT OF apples >= 18 OF lemon < 12 AS bar AS qux
将在[COUNT] OF [apples >= 18 OF lemon < 12] AS [bar AS qux]
中被分离相关问题 更多 >
编程相关推荐