Python分割文字之前的':'字符,但不是时间结构体。

2024-10-04 03:20:20 发布

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

我正在尝试使用regex在:字符之前Split个单词。你知道吗

但是,我不想split时间结构,比如15:46:00。你知道吗

我所拥有的所有信息都在for循环中,并且来自于一个pdf文件。你知道吗

所以,使用这个代码:

for item in result:
    for key in keyHeaders:
        if key in item.encode('utf-8'):
            item = item.replace(key, '')
    if ':' in item:
        item = item.replace(':', ':\n')

输出:

15:
46:
00
State:
NY
Phone:
x-xxx-xxx

使用正则表达式或非正则表达式如何split指定单词而不是由:字符连接的数字。你知道吗

我试过了,但什么也没发生。事实上,它没有分裂任何东西。你知道吗

for item in result:
    for key in keyHeaders:
        if key in item.encode('utf-8'):
            item = item.replace(key, '')
    lines = re.compile(r'(?<!\\d\\d):(?!\\d\\d)') # expect split words before ':'
    if item == re.findall(lines, item):
        item = item.replace(':', ':\n')

输出:

15:46:00
State:NY
Phone:x-xxx-xxx

谢谢你的支持!你知道吗


Tags: keyinforifresultitem字符单词
1条回答
网友
1楼 · 发布于 2024-10-04 03:20:20

你的代码有两个问题。首先使用了原始字符串,然后仍然将“\\d”上的反斜杠加倍,将其更改为“\d”。另一个问题是将整个项与关于芬德尔. 如果你的regexp是正确的,关于芬德尔对于不是日期的项目,将只返回“:”,因此您应该与“:”进行比较,或者只返回任何内容。你知道吗

对于相对简单的匹配,regexp也过于复杂。我会用这样的方法:

if not re.findall(r'\d\d:\d\d:\d\d', item):
    item = item.replace(':', ':\n')

可能还有更简单的方法来完成整个工作回复sub或者重新拆分,但这会让你克服目前的障碍。你知道吗

相关问题 更多 >