2024-10-01 02:24:12 发布
网友
如果单词完全与Python中的字符串匹配,我想替换它
假设
st = 'Length Le'.
我想用<;=
结果必须是
'Length <='
我用replace()和re.sub()尝试了这个,但是它给了我
'<=ngth <='
此操作是否有内置函数
使用正则表达式\b来匹配单词边界——这样一个零宽度的字符串,一边有非单词字符,另一边有单词字符
\b
也可以选择使用re.I作为忽略大小写,如果您使用的是非Ascii字,并且使用的是Python2,则使用re.U作为Unicode字符串匹配
re.I
re.U
因此,我们得到一个regex \ble\b,它代表单词边界,紧随其后的是l、e和单词边界。使用re.I时,大小写被忽略,因此l也将匹配L,e也将匹配E
\ble\b
l
e
L
E
示例:
>>> import re >>> string = "Length Le le ale" >>> re.sub(r'\ble\b', '<=', string, flags=re.I|re.U) 'Length <= <= ale'
试试这个
import re s = "Length Le" re.sub(r'\bLe\b', '<=', s)
它将匹配正则表达式\bLe\b,并用<=替换所有匹配项。这个表达式的意思是"Le" where it's not surrounded by alphanumeric characters。实际上,Le被空格或标点符号包围
\bLe\b
<=
"Le" where it's not surrounded by alphanumeric characters
Le
关于Regex的Python文档值得一读,特别是\b与单词边界匹配
如果您总是知道le将是它自己的一个单词,那么您可以在它前面和后面有空格时替换它。需要注意的是,您必须将字符串从'Length le'更改为'Length le '
le
'Length le'
'Length le '
>>> s1 = 'Length le ' >>> s2 = 'length le ' >>> s3 = ' le length' >>> s1.replace(' le ', '<= ') 'Length <=' >>> s2.replace(' le ', '<= ') 'length <=' >>> s3.replace(' le ', '<= ') '<= length'
使用正则表达式
\b
来匹配单词边界——这样一个零宽度的字符串,一边有非单词字符,另一边有单词字符也可以选择使用
re.I
作为忽略大小写,如果您使用的是非Ascii字,并且使用的是Python2,则使用re.U
作为Unicode字符串匹配因此,我们得到一个regex
\ble\b
,它代表单词边界,紧随其后的是l
、e
和单词边界。使用re.I
时,大小写被忽略,因此l
也将匹配L
,e
也将匹配E
示例:
试试这个
它将匹配正则表达式
\bLe\b
,并用<=
替换所有匹配项。这个表达式的意思是"Le" where it's not surrounded by alphanumeric characters
。实际上,Le
被空格或标点符号包围关于Regex的Python文档值得一读,特别是
\b
与单词边界匹配如果您总是知道
le
将是它自己的一个单词,那么您可以在它前面和后面有空格时替换它。需要注意的是,您必须将字符串从'Length le'
更改为'Length le '
相关问题 更多 >
编程相关推荐