python判断一个字符串是否为另一字符串的子串的几种方法
2012-03-28 23:37
1066 查看
字符串类型是Python里面最常见的类型。在处理字符串的时候经常会用到string模块,string模块的方法是在Python1.6里面添加进来的。本文中主要以string模块的方法来判断一个字符串是否为另一字符串的子串。
(一)首先介绍一种最简单的方法:成员操作 in
如果短字符串ss是长字符串ls的子字符串,则输出True
(二)第二种方法用到string模块的find()方法
用help(string.find)可看到关于find()方法的描述:
Help on function find in module string:
find(s, *args)
find(s, sub [,start [,end]]) -> in
Return the lowest index in s where substring sub is found,
such that sub is contained within s[start,end]. Optional
arguments start and end are interpreted as in slice notation.
Return -1 on failure.
string模块的find()方法常用于输出子字符串的索引,若不是子字符串就返回-1。于是在这里可以用来判断一个字符串是否为另一字符串的子串。
(三)第三种方法是用rfind(),其实rfind()和find()差不多,不同之处只是查找的顺序不同。find()从左至右(顺序)开始查找的而rfind()不一样,它是从右至左(倒序)进行查找的
下面简单比较一下find()和rfind()实现字符串的查找
(四)第四种方法是index()方法
index()方法跟find()方法一样,只不过如果找不到子字符串的话就会报一个ValueError异常
index()方法详细描述:
Help on function index in module string:
index(s, *args)
index(s, sub [,start [,end]]) -> int
Like find but raises ValueError when the substring is not found.
(五)第五种方法是rindex()方法,跟rfind()对应,在这里就不多说了
(一)首先介绍一种最简单的方法:成员操作 in
ss=raw_input('Enter a short sequence:') ls=raw_input('Enter a long sequence:') print ss in ls
如果短字符串ss是长字符串ls的子字符串,则输出True
(二)第二种方法用到string模块的find()方法
import string ss=raw_input('Enter a short sequence:') ls=raw_input('Enter a long sequence:') if(string.find(ls,ss)!=-1): print 'find it' else: print 'fail'
用help(string.find)可看到关于find()方法的描述:
Help on function find in module string:
find(s, *args)
find(s, sub [,start [,end]]) -> in
Return the lowest index in s where substring sub is found,
such that sub is contained within s[start,end]. Optional
arguments start and end are interpreted as in slice notation.
Return -1 on failure.
string模块的find()方法常用于输出子字符串的索引,若不是子字符串就返回-1。于是在这里可以用来判断一个字符串是否为另一字符串的子串。
(三)第三种方法是用rfind(),其实rfind()和find()差不多,不同之处只是查找的顺序不同。find()从左至右(顺序)开始查找的而rfind()不一样,它是从右至左(倒序)进行查找的
import string ss=raw_input('Enter a short sequence:') ls=raw_input('Enter a long sequence:') if(string.rfind(ls,ss)!=-1): print 'find it' else: print 'fail'
下面简单比较一下find()和rfind()实现字符串的查找
s='kwok' print s.find('k') #从左到右顺序查找,找到的第一个'k'在第0个索引(即第一个字符) print s.rfind('k') #从右到左倒序查找,找到的第一个'k'在第3个索引
(四)第四种方法是index()方法
import string ss=raw_input('Enter a short sequence:') ls=raw_input('Enter a long sequence:') try: string.index(ls,ss) print 'find it' except(ValueError): print 'fail'
index()方法跟find()方法一样,只不过如果找不到子字符串的话就会报一个ValueError异常
index()方法详细描述:
Help on function index in module string:
index(s, *args)
index(s, sub [,start [,end]]) -> int
Like find but raises ValueError when the substring is not found.
(五)第五种方法是rindex()方法,跟rfind()对应,在这里就不多说了
相关文章推荐
- Python判断一个字符串是否包含子串的几种方法
- Python判断一个字符串是否包含子串的几种方法
- Python判断一个字符串是否包含子串的几种方法
- Python--判断一个字符串是否包含某子串的几种方法
- Python实现判断一个字符串是否包含子串的方法总结
- python脚本判断一个数是否为素数的几种方法
- python脚本判断一个数是否为素数的几种方法
- 判断一个数是否为对称数,不得使用转字符串的方法
- 在Java中用正则表达式判断一个字符串是否是数字的方法
- java中判断字符串是否为数字的方法的几种方法
- 输入一个日期判断是否正确的几种方法
- python 判断字符串时是否是json格式方法
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- java判断一个字符串是否为空的方法总结
- Python简单实现查找一个字符串中最长不重复子串的方法
- javascript中判断一个对象是否是数组的几种方法
- java判断一个字符串是否为空的方法
- python判断一个单词是否为有效的英文单词?——三种方法
- 在进行C#编程时候,有的时候我们需要判断一个字符串是否是数字字符串,我们可以通过以下两种方法来实现。 【方法一】:使用 try{} catch{} 语句。 我们可以在try语句块中试图
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)