网站开发的感想,广西南宁网站建设排行榜,手机网站微信代码,域名com和cn的区别Python正则表达式是使用re模块来进行操作的。re模块提供了一组函数#xff0c;用于进行字符串的匹配和查找操作。
下面是Python中使用正则表达式的一些常用函数#xff1a;
re.search(pattern, string)#xff1a;在字符串中查找并返回第一个匹配的对象。
re.match(patte…Python正则表达式是使用re模块来进行操作的。re模块提供了一组函数用于进行字符串的匹配和查找操作。
下面是Python中使用正则表达式的一些常用函数
re.search(pattern, string)在字符串中查找并返回第一个匹配的对象。
re.match(pattern, string)从字符串的开始位置匹配并返回第一个匹配的对象。
re.findall(pattern, string)找出字符串中所有匹配的对象并以列表形式返回。
re.sub(pattern, repl, string)将字符串中符合正则表达式的部分替换为指定的字符串。
re.split(pattern, string)使用正则表达式的模式分隔字符串返回分隔后的列表。
re.compile(pattern)将正则表达式的模式编译为一个正则表达式对象可以重复使用。 寻找第一个【匹对】的字符串例如
# codingutf-8# 导入python正则库
import recheck_name input()
# 使用正则匹配lxj的信息结果存储到is_name中
is_name re.search(rlxj, check_name)if is_name is not None:print(is_name.span())
else:print(is_name)在很多常见的场景中需要进行多个匹配比如在商品名单中过滤出所有的小*商品的个数。
有这种需求咱们可以使用 re 模块中的 findall 或者 finditer方法。两个方法的区别在于 findall 返回的是一个列表finditer 返回的是一个生成器。
例如
# codingutf-8import reinput_str input()match_str re.findall(r[Pp]ython, input_str)print(match_str)正则表达式引擎使用连字符-来表示字符组中的区间例如[0-9]匹配任意数字[a-z]匹配任意小写字母[A-Z]匹配任意大写字母。如果我们需要匹配连字符本身需要对连字符进行转义。
例如
# codingutf-8import reinput_str input()# 获取到数字的正则
print(re.findall(r[0-9], input_str))# 获取到不是数字的正则
print(re.findall(r[^0-9], input_str)) 在正则表达式中有一些预定义的字符类和特殊字符它们可以帮助我们更简洁地表示某些常见的字符集合。以下是一些常用的预定义字符类和特殊字符及其描述
- \w匹配任何字母、数字或下划线字符等价于 [a-zA-Z0-9_]。在 Python3 中它还可以匹配其他语言的字母和数字。 - \d匹配任何数字字符等价于 [0-9]。在 Python3 中它还可以匹配其他语言的数字。 - \s匹配任何空白字符包括空格、制表符、换行符等。 - \b匹配一个单词边界即单词开始或结束的位置。它可以帮助我们精确地匹配整个单词而不是部分单词。
这些预定义字符类和特殊字符可以简化正则表达式的编写提高代码的可读性和效率。
例如
import retext This is a sample sentence. It contains words and non-words.# 匹配单词的正则表达式
word_pattern r\b\w\b
words re.findall(word_pattern, text)
print(Words:, words)# 匹配非单词的正则表达式
non_word_pattern r\b\W\b
non_words re.findall(non_word_pattern, text)
print(Non-words:, non_words)输出
Words: [This, is, a, sample, sentence, It, contains, words, and, non, words]
Non-words: [ , , , . , , , , , , ]在上面的程序中我们使用了两个正则表达式模式。第一个模式\b\w\b匹配一个或多个连续的单词字符\b表示单词的边界。re.findall函数返回所有匹配的结果。
第二个模式\b\W\b匹配一个或多个连续的非单词字符\W表示非单词字符。也使用re.findall函数返回所有匹配的结果。
在给定的示例文本中re.findall函数返回的结果包含空格字符和标点符号。你可以根据需要自定义模式来排除或包含特定的字符。 一个更简单的例子
# codingutf-8import reinput_str input()print(re.findall(r\w, input_str))print(re.findall(r\W, input_str))