分割字符串段

时间:2019-05-24 17:18:53

标签: python

我正在尝试对命令行的输出进行排序,并且我需要剪切一个可以更改长度和名称的特定名称。我尝试拆分的输出是

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

AP-Test名称可以是任何长度或名称。我试图将其分割为“。”。但这会创建一堆子字符串。目前,我将输出存储到一个名为Result.txt的文件中,进行排序以查找带有AP名称的行,但是我需要确定存储在列表中的字符串的结尾。


 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是确切名称,没有其他字符。

3 个答案:

答案 0 :(得分:0)

为什么不仅仅计算点数并按结果划分?

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

答案 1 :(得分:0)

您可以使用正则表达式将“至少一个点”分开:

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

这里\.的意思是文字.(而不是.在正则表达式中通常表示的“任何字符”),而+的意思是“任意数量的连续两次,但至少一次”。

用法示例:

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

如果字符串本身可以包含点,则可以通过将正则表达式更改为\.{3,}之类以要求至少3个点来进行拆分,而可能需要多个点。

答案 2 :(得分:0)

查看以下内容:https://stackoverflow.com/a/15012237

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