gpt4 book ai didi

python - 用于解析简单英语定义的正则表达式示例

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:00 24 4
gpt4 key购买 nike

我正在尝试为一个单词的定义编写一个小型解析器,并提供简单英语用法示例。

例如

  • 示例 1 - “Foo:bar 的同伴,例如我有一个名为 FooBar 的类”
  • 示例 2 - “Foo:bar 的伴侣,例如我有一个名为 FooBar 的类”

我想把上面的两个例子都分解成:

[('Foo', 'bar 的伴侣', '我有一个名为 FooBar 的类')]

这是我目前的代码

import re
EXAMPLE_REGEX = re.compile("(.*):(.*)(e.?g.?|(for )?example)(.*)")
print EXAMPLE_REGEX.findall('Foo: The companion of bar e.g. I have class called FooBar')

输出: [('Foo', 'the companion of bar', 'e.g.', '', '我有一个名为 FooBar 的类')]

如何避免输出中出现额外的 'e.g.'''

最佳答案

有一个更优雅的解决方案,但您可以将可选元素转换为非捕获组 (?:):

import re
EXAMPLE_REGEX = re.compile("(.*):(.*)(?:e.?g.?|(?:for )?example)(.*)")
print EXAMPLE_REGEX.findall('Foo: The companion of bar e.g. I have class called FooBar')

关键是 (?:e.?g.?|(?:for )

关于python - 用于解析简单英语定义的正则表达式示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16309409/

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