当前位置:首页 » 编程语言 » python匹配字符串

python匹配字符串

发布时间: 2022-12-15 05:44:11

1. python 字符串提取信息方法总结

在日常项目中,我们经常会使用python从字符串中提取我们想要的信息,以下是各种提取信息方法的总结。

格式: str[beg:end:step]
描述: 字符串[开始索引:结束索引:步长]切取字符串为开始索引到结束索引-1内的字符串步长不指定时步长为1

举例:
print(str[::2]) //::这里表示整个字符串,每两个位置提取一个
print(str[1:3]) //提取第2个到第3个
print(str[2::]) //截取2 - 末尾的字符

本小节介绍了,处理字符串经常用到的一些函数方法。

语法: str.find(str, beg=0, end=len(string))
描述: Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

语法: str.split(str="", num=string.count(str)).
描述: Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串.返回分割后的字符串行表,该方法可以讲字符串转化为列表处理。

另外的: str.splitlines([keepends])按照行(' ', ' ', ')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

语法: str.partition(str)
描述: partition() 方法用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

语法: str.replace(old, new, max)
描述: Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法: str.strip([chars]);
描述: Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

语法: str.join(sequence)
描述: Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

上述方法还有其变形,如str.rfind(),这代表从字符串右边开始处理,正常是从左边开始处理。下表是其它常用的python字符串自带函数方法。

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。本小节主要介绍Python中常用的正则表达式处理函数和正则表达式的书写规则。
re 模块使 Python 语言拥有全部的正则表达式功能。所以在python中使用正则表达式处理函数需要import re

语法: re.search(pattern, string, flags=0)
描述: re.search 扫描整个字符串并返回第一个成功的匹配。匹配成功re.search方法返回一个匹配的对象,否则返回None。

语法: re.sub(pattern, repl, string, count=0, flags=0)
描述: Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。

语法: pattern.findall(string, pos, endpos)
描述: 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。

模式字符串使用特殊的语法来表示一个正则表达式:

2. 在Python中怎么匹配多个“取非”的长字符串

按照你的要求写的正则表达式 ^((?!ABC)(?!一二三).)+$

完整的Python程序如下

importre

s=['123ABC12345','12一二三12345','1一二345','12A345678','1一2二3三45','1AB23C45']

regex=r'^((?!ABC)(?!一二三).)+$'

foriinrange(0,len(s)):

result=re.match(regex,s[i])

ifresult:

print(result.group(0))

Python源代码(注意源代码的缩进)

3. python 如何匹配一个字符串是否是以B开头的

在正则表达式中,使用^匹配字符串的开头

importre

pattern=re.compile('^B')
aStr='Backbone'
bStr='backbone'
ifpattern.search(aStr):
print'StartwithB'
ifpattern.search(bStr)
print'NotstartwithB'

使用re包的search函数,如果匹配到则返回一个对象,如果没有比配的则返回None,可以将返回值直接作为if语句判断的条件。

4. 如何利用python语言匹配文本文件中的指定字符串,并将其所在行的后面几

s="指定字符串"
f=open("文本文件名")
n=int(raw_input("输入输出的行数:"))
line=f.readline()
whileline:
ifsinline:
printline
foriinrange(n):
line=f.readline()
ifline:
printline
else:
break
ifnotline:break
line=f.readline()

5. python 正则表达式,怎样匹配以某个字符串开头,以某个字符串结尾的情况

python正则匹配以xx开头以xx结尾的单词的步骤:

1、假设需要匹配的字符串为:site sea sue sweet see case sse ssee loses需要匹配的为以s开头以e结尾的单词。正确的正则式为:sS*?e

2、使用python中re.findall函数表示匹配字符串中所有的可能选项,re是python里的正则表达式模块。findall是其中一个方法,用来按照提供的正则表达式,去匹配文本中的所有符合条件的字符串。

3、代码和结果如下:

text ='site sea sue sweet see case sse ssee loses'

re.findall(r'sS*?e',text)

结果为:['site', 'sue', 'see', 'sse', 'ssee']

(5)python匹配字符串扩展阅读:

python正则匹配,以某某开头某某结尾的最长子串匹配

代码如下:

regVersions = re.search(r'(V|v)[0-9].*[0-9]', filename)

if regVersions:

print regVersions.group()


6. python 原始字符串匹配问题

其实,你只要看一下rhas和has的内容就知道了,print一下也可以看到不同点

rhas中的\n因为前面有r的原因,不代表回车换行,而分别是字符\和n。要匹配的话应该这么写: r"hello\\n\nworld"或者"hello\\\\n\nworld"

我想令你困惑的应该是t和s在与has的匹配中为什么一样的吧?这主要是因为在re中,会重新解析字符串,t中的字符\n在重新解析时转化为了回车
如果s='hello\\n\\nworld'也是可以与has匹配的
同样的情况 t = r"hello\\n\\nworld"或者"hello\\\\n\\nworld"也可以与rhas相匹配

7. 请问python如何用正则匹配偶数位置的特定字符串

思路是进行两次匹配,第一次两位任意字符,第二次匹配a结尾,替换为b
import
re
def
replace(matched):
return
re.sub('a$',
'b',
matched.group())
s
=
'a12a24a45a767'
re.sub('..',
replace,
s)

热点内容
新人采访问题 发布:2025-05-11 17:14:29 浏览:899
云服务器有私服吗 发布:2025-05-11 17:13:33 浏览:30
安卓手机怎么转移ipad 发布:2025-05-11 17:01:35 浏览:735
电脑怎么进华为云服务器 发布:2025-05-11 16:53:53 浏览:868
我的世界hmcl自己开服务器教程 发布:2025-05-11 16:53:43 浏览:702
安卓手机为什么都有宽下巴 发布:2025-05-11 16:52:16 浏览:641
女性头发加密一般多久 发布:2025-05-11 16:46:29 浏览:534
手机脚本破解 发布:2025-05-11 16:41:17 浏览:619
qq空间相册密码怎么破 发布:2025-05-11 16:32:29 浏览:798
蓝揍云盘ftp 发布:2025-05-11 16:32:27 浏览:536