Ant*_*ine 1 python regex python-3.x regex-lookarounds
我们假设我们有一个字符串:
a = "I would like to go to dinner."
Run Code Online (Sandbox Code Playgroud)
很容易将字符串中的所有内容i和内容更改o为-.如果我们定义:
b = re.sub("i|o","-", a, flags = re.I)
Run Code Online (Sandbox Code Playgroud)
我们得到:
b = "- w-uld l-ke t- g- t- d-nner."
Run Code Online (Sandbox Code Playgroud)
但我不知道如何得到:
"I -o--- -i-- -o -o -o -i-----"
Run Code Online (Sandbox Code Playgroud)
在使用RE模块优雅的方式(注意,最后-在b通过替换点获得).有人可以写
c = ""
for char in a:
c += char if char.lower() in "io" else "-"
Run Code Online (Sandbox Code Playgroud)
但是我想用RE来做这件事.我试着写一些类似的东西
c = re.sub('(?!i|o)', a, flags = re.I)
Run Code Online (Sandbox Code Playgroud)
但结果是
"I- -wo-u-l-d- -li-k-e- -to- -go- -to- -di-n-n-e-r-.-"
Run Code Online (Sandbox Code Playgroud)
而且我不知道为什么.显然,我不明白是如何(?!...)运作的.
你只需要指定一组字符,你不希望匹配:
>>> re.sub("[^io ]", "-", a, flags=re.I)
'I -o--- -i-- -o -o -o -i-----'
Run Code Online (Sandbox Code Playgroud)
这里,除了对所有字符"i","o"并" "用连字符(忽略大小写)代替.将字符放在以^符号为前缀的组中意味着将从匹配中省略这些字符.
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |