拆分字符串的段

2024-09-30 06:12:05 发布

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

我正在尝试对命令行的输出进行排序,需要截取一个长度和名称可能不同的名称。我试图分割的输出是

AP Name.......................................... AP-Test

AP Test的名称可以是任意长度或名称。我试着用“,”来分割它,但那会产生一堆子字符串。我当前将输出存储到一个名为结果.txt,通过查找带有AP Name的行进行排序,但我需要找到存储在列表中的字符串的结尾。你知道吗


 APnames = []                       # AP name lists
 APlinenum = 0                # AP line number index
 APsubstr = "AP Name.".lower()                # searching for "AP Name".

 fileA = open("Results.txt", 'a+')
       for line in fileA:
           APlinenum += 1
           if line.lower().find(APsubstr) != -1:    # if case-insensitive match,
           APnames.append(line.rstrip('\n'))

       fileA.close()

APname = "the actual AP-name"



存在这样一个问题:如果AP名称包含句点,它将被拆分。你知道吗

预期的输出将是字符串APname是确切的名称,没有其他字符。你知道吗


Tags: 字符串nametesttxt名称for排序line
3条回答

可以使用正则表达式按“至少一个点”拆分:

import re
print(re.split('\.+', APnames))

这里\.表示文字.(而不是“任何字符”,这是.在regex中通常的意思),而+表示“一行中的任意次数,但至少一次”。你知道吗

用法示例:

>>> re.split('\.+', 'a....b')
['a', 'b']
>>> re.split('\.+', 'a.......b')
['a', 'b']

如果字符串本身可以包含点,那么您可以通过将regex更改为\.{3,}这样至少需要3个点来进行拆分,从而需要多个点。你知道吗

看看这个:https://stackoverflow.com/a/15012237

string.rsplit('delimeter',1)[1]

为什么不数一数点,然后按结果分开呢?你知道吗

num_of_dots = txt.count('.')
txt.split('.'*num_of_dots)

相关问题 更多 >

    热门问题