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

时间:2022-07-25
本文章向大家介绍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)

运行效果图:

实例二

在实例一的基础上,只保留中括号里为 @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

运行效果图: