python string 中查找中文字符串

http://blog.youkuaiyun.com/jarvischu/article/details/8962497


下面函数是从我在写的一个python自动获取天气的程序中截取的。


该函数将从中文字符串“浙江省杭州市”中,截取出"杭州"


首先将字符串编码为gbk,使用unicode(str,code),将code型编码 的 str字符串转换成unicode

然后判断字符串中是否含有"省"和"市"字,如果有就截取掉;这里注意使用  u“省”

最后返回截取的字符串


[python]  view plain  copy
  1. def convertName(cityName):  
  2.     '''''将 “浙江省杭州市” 转换成“杭州”'''   
  3.   
  4.     name = unicode(cityName, "gbk")  
  5.     #name=cityName.encode("utf-8") #测试时,utf-8不行,未解  
  6.     print name  
  7.       
  8.     if name.find(u"省") !=-1:# 包含'省'   
  9.         #print u'有省'  
  10.         name=name.split(u'省')[1]  
  11.     if name.find(u"市") != -1:#包含‘市’  
  12.         #print u'有市'  
  13.         name=name.split(u'市')[0]  
  14.     return name  


### Python查找字符串的方法 在Python中,有多种方法可以用于查找字符串。以下是几种常用的方法或函数: #### 1. 使用 `in` 关键字 最简单的方式是使用 `in` 关键字来检查一个字符串是否包含另一个子字符串。这种方法返回的是布尔值,表示是否存在子字符串[^1]。 ```python def find_substring(string, substring): if substring in string: return True else: return False # 示例用法 string = "Hello, World!" substring = "World" if find_substring(string, substring): print("找到了子字符串") else: print("未找到子字符串") ``` #### 2. 使用 `find()` 方法 `find()` 方法可以用来查找字符串在母字符串中的位置,并返回其索引值。如果找不到子字符串,则返回 `-1`。此方法还可以指定搜索范围[^2]。 ```python string = "Hello, World!" substring = "World" index = string.find(substring) if index != -1: print(f"子字符串从索引 {index} 开始") else: print("未找到子字符串") ``` #### 3. 使用 `index()` 方法 与 `find()` 类似,`index()` 方法也可以查找字符串的位置。但是,如果找不到子字符串,它会抛出一个 `ValueError` 异常[^2]。 ```python string = "Hello, World!" substring = "World" try: index = string.index(substring) print(f"子字符串从索引 {index} 开始") except ValueError: print("未找到子字符串") ``` #### 4. 使用正则表达式(`re` 模块) 对于更复杂的匹配需求,可以使用 Python 的 `re` 模块来进行模式匹配。这种方法允许使用正则表达式定义子字符串的模式[^4]。 ```python import re string = "Hello, World!" pattern = "World" match = re.search(pattern, string) if match: print(f"子字符串从索引 {match.start()} 开始") else: print("未找到子字符串") ``` #### 时间复杂度分析 在最坏情况下,上述方法的时间复杂度为 \(O(n \times m)\),其中 \(n\) 是母字符串的长度,\(m\) 是子字符串的长度。这是因为需要将母字符串的所有可能子串与子字符串逐一比较[^3]。 ### 总结 根据具体需求选择合适的方法。如果仅需判断子字符串是否存在,可以使用 `in` 关键字;如果需要获取子字符串的位置,可以选择 `find()` 或 `index()` 方法;而对于复杂的匹配规则,推荐使用正则表达式。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值