字元串簡單處理的話用字元串切片很容易實作,
形如:
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)
運作效果圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iNjlzMiZjN0UjM3MTN3YmYwIWM0EDO2IjMlRTYkhDMm9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
執行個體二
在執行個體一的基礎上,隻保留中括号裡為 @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
喜歡的點個贊❤吧!