首页 > 编程知识 正文

python正则替换字符串(python3正则表达式)

时间:2023-05-03 22:13:56 阅读:79412 作者:1223

网络上的某些文本在某些地方有不需要的空间。 如果要替换所有空格,请使用字符串string类的replace ) )方法,如下所示:

str=str.replace (','')

但是,对于中文和英语混合的文本,如果想替换汉字中间的空格,留下英语单词之间的空格,问题的解决就会变得复杂。 需要正则表达式。

如果有以下文档:

如果行(或列)的结尾和某些汉字之间存在不必要的空格,则必须将其替换。

以下Python代码就可以了。

处理后的文本已保存到new.txt文档中:

当然,也可以处理一些规则的乱码。

以上都是中文的简单处理方法,但也可以用简单的正则表达式判断文档或字符串内容是否包含“英文空格”格式,在一个条件下分别处理。

在此,需要重点分析有关正则表达式的上述概念和相关的一些内容。

正则表达式是匹配字符串的有力武器。 其设计思想是用描述性语言在字符串中定义规则,符合规则的字符串都被认为是“一致”的。 否则,该字符串是不合法的。

1 compile()方法

将指示要编译正则表达式的字符串值传递给re.compile (),并返回Regex图案对象(或只是Regex对象)。

在Python中使用正则表达式时,re模块内部将执行以下两项操作:

I编译正则表达式,如果正则表达式字符串本身不正确,则报告错误;

II在编译的正则表达式中匹配字符串;

如果要多次重用一个正则表达式或重用更复杂的正则表达式,为了提高效率,请事先编译该正则表达式,这样下次重用时就不再需要编译步骤,而是直接匹配。 编译后生成Regular Expression对象。

可以将re.IGNORECASE或re.I传递给re.compile (),用作正则表达式不区分大小写的第二个参数。

RoboCOP=re.compile(r'RoboCOP ',re.I ) )。

robocop.search (robocopispartman,part machine,all cop.' ).group ) )。

“机器人”

2 r'……'的写法

r'……'表示忽略……中可能存在的转义字符,将其作为普通字符处理;

可能希望与

3 中括号[]

个字符的组匹配,但缩写的字符分类d、w、s等)太宽。 可以在方括号[]中定义自己的字符分类。

d、w和s分别与数字、字符和空格匹配。

D、W和S分别与除数字、字符和空格以外的所有字符匹配。

例如,字符分类[aeiouAEIOU]匹配所有元音字符(任何元音字符),无论大小写。

regex=re.com pile (r ' [ aeiou aeiou ] ) )

也可以使用短横条来表示字母和数字的范围。 例如,字符分类[a-zA-Z0-9]与所有小写字母、大写字母和数字匹配。

请注意,方括号内不会解释常规正则表达式符号。 也就是说,不需要在前面加反斜杠进行转义。 或) )文字。 例如,字符分类匹配数字0到5和句点。 不用把它写成[0-5.],只要写成[0-5.]就行了。

可以通过在字符分类的左方括号后添加插入字符(^ )来获得“非字符类”。 非字符类与此字符类中没有的所有字符匹配。 例如:

regex=re.com pile (r ' [ ^ aeiou aeiou ] ' )

[abc]匹配方括号中的任意字符(a、b、c等)。

[^abc]匹配不在方括号内的任何字符。

插入字符(^ )还有另一种用法,表示用于正则表达式开头时,匹配必须出现在找到的文本开头。 同样,可以在正则表达式末尾添加美元符号$,以指示字符串必须以此正则表达式模式结束。 例如,正则表达式r'd

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。