天天看点

Python 技巧篇-字符串灵活处理:字符串过滤、字符串拼接,字符串切片,特殊、超长字符串的处理实例演示

字符串简单处理的话用字符串切片很容易实现,

形如:

a="Hello Python!"

a[-7:]="Python!"

规则:大于等于冒号前的小于冒号后的,两端可以省略,正的开头是0,小的开头是-1。

简单,短的字符串还好,复杂的,长的麻烦了。

我们用原始的方法来处理:回归原始,回归简单!

实例一:

有如下一串字符串,这是 xpath 路径,我想过滤掉中括号里的内容:

"/html/body/div[@id='wrapper']/div[@id='head']/div[@class='head_wrapper']/div[@class='s_form']/div[@class='s_form_wrapper soutu-env-nomac soutu-env-index']/form[@id='form']/span[@class='bg s_btn_wr']/input[@id='su']"

预想效果如下:

/html/body/div/div/div/div/div/form/span/input

s = "/html/body/div[@id='wrapper']/div[@id='head']/div[@class='head_wrapper']/div[@class='s_form']/div[@class='s_form_wrapper soutu-env-nomac soutu-env-index']/form[@id='form']/span[@class='bg s_btn_wr']/input[@id='su']"
s_new = ""
# s为原始字符串,s_new为新字符串

k = 0   # 设置一个开关,当为0时,我就拼接,为1时舍去

# 遍历字符串
for a in s:

    # 过滤掉中括号里的
    if(a == '['):
        k = 1;
    elif(a == ']'):
        k = 0;
        continue;
        
    # 符合要求的进行拼接
    if(k == 0):
        s_new = s_new + a

print(s_new)      

运行效果图:

Python 技巧篇-字符串灵活处理:字符串过滤、字符串拼接,字符串切片,特殊、超长字符串的处理实例演示

实例二

在实例一的基础上,只保留中括号里为 @id 的部分。

预期效果如下:

/html/body/div[@id='wrapper']/div[@id='head']/div/div/div/form[@id='form']/span/input[@id='su']

中间这样改造一下,当我匹配到左括号时,看看括号后是不是 @id:

k = 0 
i = -1   # i是临时加的索引跟踪,判断a的位置
for a in s:
    i = i + 1
    
    if(a == '['):
        if(s[i:i+4] != "[@id"):   # 运用了字符串切片
            k = 1;
    elif(a == ']' and k == 1):
        k = 0;
        continue;
        
    if(k == 0):
        s_new = s_new + a      
Python 技巧篇-字符串灵活处理:字符串过滤、字符串拼接,字符串切片,特殊、超长字符串的处理实例演示

喜欢的点个赞❤吧!