Python字符串从字符串中的已知单词切片

时间:2016-09-09 17:03:31

标签: python string slice

我正在尝试读取由另一个函数(在我的控制之外)写入的变量,以查找已知单词的存在,然后复制从已知单词开始并在行尾或|分隔符。 所以我想根据我编写的一个简单的if语句写入这个变量,但目前它并没有考虑变量中已有的内容并且需要。由于我写的代码使用了各种别名,我试图简化我在下面做的事情

因此,首先将变量'devices'写入其他地方但可供我使用。 我正在读另一个变量'area',如果专门设置为'3',我需要用'box2 | box3'(或'box3 | box2' - 无关紧要)写变量'devices'我可以忽略'设备'的现有内容,除非它在字符串中包含'box1'。它可能出现在字符串中的任何位置,也会被其他数据附加,但它总是在行尾完成,或者由|分隔符完成。因此,我需要读取整个变量,查找“box1”的存在,并在另一个变量中读取尽可能多的字符,直到它的行末达到|分隔符。

我能真正分享的唯一代码是:

area = "3"
if area == "3":
    devices = "box2|box3"
print devices

假设'devices'包含'box5 | box6_standard | box9 | box8_ex_345 | box1_182',我需要从该字符串中添加box1_182(当我写'devices'变量时将其追加回来 - 我不需要担心该变量的任何其他预先存在的内容。

另一个例子,现有的'devices'变量可能包含'box7 | box1_345 | box6 | box8_ex_345',在这种情况下,我需要先取'box1_345'并将其附加到设备字符串,然后再写'box2' | box3'到它('box2 | box3 | box1_182')

1 个答案:

答案 0 :(得分:0)

我会使用正则表达式和in字来检查devices是否有'box1'。如果是这样,那么只需将其附加到新的devices字符串

即可
import re

devices='box5|box6_standard|box9|box8_ex_345|box1_182'
area = "3"
if area == "3":
    tdevices = "box2|box3"
    if 'box1' in devices:
        t=re.search('box1[0-9_:a-zA-Z]*', devices)
        devices=tdevices+'|'+t.group()
    else:
        devices=tdevices
print devices