网络上的某些文本在某些地方有不需要的空间。 如果要替换所有空格,请使用字符串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