Python正则表达式行为

2024-05-15 01:19:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python正则表达式有问题。结果在regxe buddy上看起来不错,但在python中失败了。你知道吗

我要匹配的数据集是一个列表:

['  101  0.  0.\n',
 '  0.  100.\n',
 '  1.  98.5107805\n',
 '  2.  97.0464459\n',
 '  3.  95.6065328\n', ... ]

我得把所有的号码从第二行开始。 为此,我使用了:

pattern = compile(r'\s*(?P<raw_time>\d*\.?\d*)\s+(?P<raw_value>\d*\.\d*)')

一切都很顺利。我遍历这个列表,得到每一行的“raw\u time”中的第一个值和“raw\u value”中的第二个值。 然后我应该扩展这个术语来处理加权数据。你知道吗

因此数据转向:

['  101  0.  0.\n',
 '  0.  100.  1\n',
 '  1.  98.5107805  1\n',
 '  2.  97.0464459  1\n',
 '  3.  95.6065328  1\n', ... ]

我仍然需要解析出两个第一个参数。所以我把模式改成:

pattern = compile(r'\s*(?P<raw_time>\d*\.?\d*)\s+(?P<raw_value>\d*\.\d*).+')

除1号线外,其他线都很好用。你知道吗

工作:

In [35]: pattern.search('1.  98.5107805  1\n').groupdict()
Out[35]: {'raw_time': '1.', 'raw_value': '98.5107805'}

工作:

In [37]: pattern.search('  0.  100.  1\n').groupdict()
Out[37]: {'raw_time': '0.', 'raw_value': '100.'}

工作:

在[44]中:模式.搜索('1. 98.5107805\n').groupdict() Out[44]:{'raw\u time':'1.','raw\u value':'98.510780'}

不工作:

In [46]: pattern.search('  0.  100.\n').groupdict()
Out[46]: {'raw_time': '', 'raw_value': '0.'}

我非常依赖regex(当然是demo,但到目前为止它与python是一致的)。你知道吗

建议?你知道吗

tnx公司


Tags: 数据in列表searchrawtimevalue模式

热门问题