我正在尝试对命令行的输出进行排序,并且我需要剪切一个可以更改长度和名称的特定名称。我尝试拆分的输出是
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是确切名称,没有其他字符。
答案 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]