gpt4 book ai didi

regex - 正则表达式在两组中至少执行一个

转载 作者:IT王子 更新时间:2023-10-29 01:04:32 26 4
gpt4 key购买 nike

我必须使用正则表达式解析一个字符串,其中至少需要一组两个中的一个。我不知道如何写这个案例。

为了说明问题我们可以考虑解析这个案例:

String: aredhouse theball bluegreencar the
Match: ✓ ✓ ✓ ✗
  1. 项目之间用空格分隔
  2. 每个项目由文章、颜色和对象组成,这些对象由以下表达式中的组定义(?P<article>the|a)?(?P<colour>(red|green|blue|yellow)*)(?P<object>car|ball|house)?\s*

  3. 一个项目可以有一个“文章”,但必须有一个“颜色”或/和一个“对象”。

有没有办法使用正则表达式使“文章”成为可选但至少需要一种“颜色”或“对象”?

Here是此示例的编码 Go 版本,但我想这是适用于任何语言的通用正则表达式问题。

最佳答案

这正在处理您的测试用例。

/
(?P<article>the|a)? # optional article
(?: # non-capture group, mandatory
(?P<colour>(?:red|green|blue|yellow)+) # 1 or more colors
(?P<object>car|ball|house) # followed by 1 object
| # OR
(?P<colour>(?:red|green|blue|yellow)+) # 1 or more colors
| # OR
(?P<object>car|ball|house) # 1 object
) # end group
/x

可以简化为:

/
(?P<article>the|a)? # optional article
(?: # non-capture group, mandatory
(?P<colour>(?:red|green|blue|yellow)+) # 1 or more colors
(?P<object>car|ball|house)? # followed by optional object
| # OR
(?P<object>car|ball|house) # 1 object
) # end group
/x

关于regex - 正则表达式在两组中至少执行一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48249480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com