gpt4 book ai didi

python - 解析包含一系列条目的行,推断数据

转载 作者:行者123 更新时间:2023-12-03 07:53:16 27 4
gpt4 key购买 nike

我尝试了所有可能的模式,但仍然发现困难。请问有什么帮助吗?

所以我有这个字符串:'C+11.,18.,25.6.,2.,23.7.,27.8.23'

我希望我的正则表达式提取天数(它们位于每个月之前),并且仅与该特定月份相关。或者两个月之间仅属于下一个月的几天。

示例:

情况 1:6 月中之前的天数 |

情况 2:第 7 个月中第 6 个月之后的天。月份定义为:*r'\.\d{1}\\.'* 例如 6、7 和8 是这里的几个月。它们前面的任何数字都是它的天数。

代码:

import re
captured_pattern = "C+11.,18.,25.6.,2.,23.7.,27.8.23"
pattern = r'(\d{1,2})\.(?=(\d{1})\.(?!.*,\d{1,}\.6))'
matches = re.findall(pattern, captured_pattern)
print(matches)
OUTPUT : [('25', '6'), ('23', '7'), ('27', '8')]

天数定义为:

示例:11.,18.,25 是 6 月(六月)中的几天。 2.,23 是第 7 个月(七月)的日子。

年份在最后一部分中定义为两位数格式。 23

提前谢谢你:)

最佳答案

您可以将文本部分与相应月份的天数进行匹配并使用

import re
s="C+11.,18.,25.6.,2.,23.7.,27.8.23"
rx = r'\b(\d{1,2}(?:\.,\d+)*)\.(\d{1,2})\b'
results = [(days.split('.,'),month,) for days, month in re.findall(rx, s)]
print(results)
# => [(['11', '18', '25'], '6'), (['2', '23'], '7'), (['27'], '8')]

请参阅Python demo 。请参阅regex demo 。请注意,天正则表达式部分可以定义为 (0?[1-9]|[12]\d|3[01]) ,月份正则表达式部分可以进一步精确为 (0?[1-9]|1[0-2]).

正则表达式详细信息:

  • \b - 单词边界
  • (\d{1,2}(?:\.,\d+)*) - 第 1 组:一位或两位数字,然后零次或多次重复 ., + 一位或多位数字
  • \. - 一个 . 字符
  • (\d{1,2}) - 第 2 组(月份):一位或两位数字
  • \b - 单词边界

关于python - 解析包含一系列条目的行,推断数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76626838/

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