获取指定字符前面的所有字符,获取指定字符后面的所有字符。

关系到字符串的处理。


运行环境 Runtime environment

1
2
3
操作系统: Windos10  
IDE: pycharm 2021.3.2 x64
语言: python v3.9.1

背景

数据采集过程中,通过解析库拿到的字符串,是需要清洗的。

偶尔需要截取某特定符号后的字符串。

例如: “Tree Number(s): C15.378.100.100, C16.320.099” 获取“:”符号后的字符串。

思路

采用split方法

根据特定符号,将目标字符串切割,然后使用join方法再将需要的那一部分字符串取出。

但是如果目标字符串为None时,split方法会报错。

采用rfind+切片方法

Python rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回 -1。

根据特定符号,查找目标字符串该符号,然后使用切片法截取需要的字符串。

1. 顺序取法(从前往后取)

2. 逆序取法(从后往前取)

代码

split方法

1
2
3
4
5
temp_str = "Tree Number(s): C15.378.100.100, C16.320.099"

print("".join(temp_str.split(":")[-1]))

# 获取到的结果:C15.378.100.100, C16.320.099

rfind+切片

  1. 顺序取法
1
2
3
4
5
temp_str = "Tree Number(s): C15.378.100.100, C16.320.099"

print(temp_str[0:temp_str.rfind(':', 1) + 1])

# 获取到的结果:Tree Number(s)
  1. 逆序取法
1
2
3
4
5
temp_str = "Tree Number(s): C15.378.100.100, C16.320.099"

print(temp_str[temp_str.rfind(':', 1) + 1:])

# 获取到的结果:C15.378.100.100, C16.320.099

总结

活用python对字符串处理的自带方法,性能更优异。