Python 正则表达式匹配两个字符之间的字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 正则表达式匹配两个字符之间的字符相关的知识,希望对你有一定的参考价值。

参考技术A

1、打开JUPYTER NOTEBOOK,新建一个空白的PY文档。

2、import re首先必须要做的是引入regular expression。

3、a = re.compile(r'  ')a.sub(r' ', 'my name is  Peter.')可以定义两个空格的情况下变成一个空格。

4、也可以定义多个重复单词的时候,变成一个。

5、用+就可以代替一个或者多个的意思。

6、\\s表示空格,可以定义两个或者两个以上就变成一个。

7、c = re.compile(r'\\s2,'),c.sub(' ', 'My     name  is Peter.'),后续只能直接输入改成的字符。

Python 正则表达式匹配包含两个或更少 o 字符的空格分隔的单词

【中文标题】Python 正则表达式匹配包含两个或更少 o 字符的空格分隔的单词【英文标题】:Python regex match space-separated words that contain two or fewer o characters 【发布时间】:2021-12-24 03:55:08 【问题描述】:

我是 python 新手,正在尝试解决一些问题(以学习的方式)。 我想匹配包含两个或更少 o 字符的空格分隔的单词。 这就是我实际所做的:

import re

pattern = r'\b(?:[^a\s]*o)1[^a\s]*\b'

text = "hop hoop hooop hoooop hooooop"
print(re.findall(pattern, text))

当我运行我的代码时,它确实匹配字符串中的所有单词.. 有什么建议吗?

【问题讨论】:

您可以在regex101 之类的网站上阅读有关正则表达式和训练的信息。那里解释了你的模式。 【参考方案1】:

你可以使用

import re
pattern = r'(?<!\S)(?:[^\so]*o)0,2[^o\s]*(?!\S)'
text = "hop hoop hooop hoooop hooooop"
print(re.findall(pattern, text))

# Non  regx solution:
print([x for x in text.split() if x.count("o") < 3])

请参阅Python demo。两者都产生['hop', 'hoop']

(?&lt;!\S)(?:[^\so]*o)0,2[^o\s]*(?!\S) 正则表达式匹配

(?&lt;!\S) - 左侧空白边界 (?:[^\so]*o)0,2 - 除空格和o char 和o char 之外的任何零个或多个字符出现零次或两次出现 [^o\s]* - 除了o 和空格之外的零个或多个字符 (?!\S) - 右侧空白边界

【讨论】:

以上是关于Python 正则表达式匹配两个字符之间的字符的主要内容,如果未能解决你的问题,请参考以下文章

C正则表达式,匹配两个字符串之间的内容

正则表达式匹配两个字符串之间的所有字符

字符之间的Python正则表达式匹配

两个字符串之间的正则表达式匹配,包括那些字符串

使用正则表达式查找两个字符串之间的多个匹配项

两个字符串之间的正则表达式匹配?