天天看點

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 技巧篇-字元串靈活處理:字元串過濾、字元串拼接,字元串切片,特殊、超長字元串的處理執行個體示範

喜歡的點個贊❤吧!