gpt4 book ai didi

python - 如何在不同时包含关键字的情况下获得 Python re 模块的完全匹配?

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

在下面的例子中:

"noun 1 left and right sides 左右摇摆 zuǒ-yòu yáobǎi vacillating; unsteady; hesitant 主席台左右, 红旗迎风飘扬。 Zhǔxítái zuǒyòu, hóngqí yíngfēng piāoyáng. Red flags are fluttering on both sides of the rostrum. 2 [after a numeral] about; or so 八点钟左右 bā diǎn zhōng zuǒyòu around eight o'clock 一个月左右 yī ge yuè zuǒyòu a month or so 身高一米七左右 Shēngāo yī mǐ qī zuǒyòu be about 1.70 metres in height 价值十元左右。 Jiàzhí shí yuán zuǒyòu. It's worth about 10 yuan. 3 those in close attendance; retinue 屏退左右 Píng tuì zuǒyòu order one's attendants to clear out verb master; control; influence 左右局势 zuǒyòu júshì be master of the situation; in control 为人所左右 wéi rén suǒ zuǒyòu controlled by another; fall under another’s influence 他这个人不是别人能左右得了的。 Tā zhège rén bù shì biéren néng zuǒyòu déle de. He is not a man to be influenced by others. adverb dialect anyway; anyhow; in any case 左右闲没事, 我就陪你走一趟吧。 Zuǒyòu xiánzhe méishì, wǒ jiù péi nǐ zǒu yī tàng ba. Ānyway I’m free now so let me go with you."

我想根据名词、形容词、副词等来分隔字符串...如果它们有多个,也根据数字分隔。

所以最终的结果应该是:

        noun
["left and right sides", "左右摇摆 zuǒ-yòu yáobǎi vacillating; unsteady; hesitant 主席台左右, 红旗迎风飘扬。 Zhǔxítái zuǒyòu, hóngqí yíngfēng piāoyáng. Red flags are fluttering on both sides of the rostrum."]
["[after a numeral] about; or so", "八点钟左右 bā diǎn zhōng zuǒyòu around eight o'clock 一个月左右 yī ge yuè zuǒyòu a month or so 身高一米七左右 Shēngāo yī mǐ qī zuǒyòu be about 1.70 metres in height 价值十元左右。 Jiàzhí shí yuán zuǒyòu. It's worth about 10 yuan."]
["those in close attendance; retinue", "屏退左右 Píng tuì zuǒyòu order one's attendants to clear out"]
verb
["master; control; influence", "左右局势 zuǒyòu júshì be master of the situation; in control 为人所左右 wéi rén suǒ zuǒyòu controlled by another; fall under another’s influence 他这个人不是别人能左右得了的。 Tā zhège rén bù shì biéren néng zuǒyòu déle de. He is not a man to be influenced by others."]
adverb
["dialect anyway; anyhow; in any case", "左右闲没事, 我就陪你走一趟吧。 Zuǒyòu xiánzhe méishì, wǒ jiù péi nǐ zǒu yī tàng ba. Ānyway I’m free now so let me go with you"]

nounverbadverb 应该是键,而值可能是字典。由于 noun 在这里有三个对象,它应该有三个不同的结果。

所以第一步是从 noun, adjective adverb, verb 等中获取组件。 . 并将其存储到一些变量中。但是在这种情况下,我无法根据特定的字符串得到相关的结果。例如:

re.findall("(noun|verb|adverb|adjective)", s)

这会返回 ['noun', 'verb', 'adverb'] 因为它只关注完全匹配。

所以我添加了 .+ 使其成为 re.findall("(noun|verb|adverb|adjective).+", s) 并获取后面的任何单词noun,但随后它捕获了 noun 之后的所有字符串,包括 verbadverb 之后的所有字符串(并返回['名词']).

所以我撞墙了。是否有可能得到相关部分,同时得到除关键字匹配之外的完整结果?

最佳答案

这不是正则表达式的工作。您尝试匹配的内容变化太大。

为字典条目编写一个合适的语法,就好像它是一种编程语言,然后根据该语法解析您的数据。

像这样:

  1. 您的语言关键字是名词动词副词
  2. 每个都引入一个未编号的或多个编号的定义。
  3. 已编号定义的编号单调递增,因此其他出现在定义中的数字应被视为定义的一部分,而不是开始一个新的定义。

作为一名兼职词典编纂者,我还建议您将 dialect(通常来自标准词汇表)之类的标签视为可选关键字,而不是定义的一部分。

关于python - 如何在不同时包含关键字的情况下获得 Python re 模块的完全匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49462630/

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