作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有这些字符串:
this_string = 'US/Canada'
that_string = '/fowardslash @/t t/'
我希望能够re.sub()
具有这两个目标的字符串:
1) 将前后没有字母的所有/
替换为空''
。
2) 将前后有字母的所有/
替换为空格。
所以我想要的最终结果是这样的:
this_string = 'US Canada'
that_string = 'forwardslash @t t'
<小时/>
我目前有这个re.sub('[^A-Za-z0-9\s]+','', this_string)
它实现了第一个目标,但没有实现第二个目标。
我会得到this_string = 'USCanada'
最佳答案
您可以将 re.sub() 与自己的替换函数一起使用。
示例:
import re
this_string = 'US/Canada'
that_string = '/fowardslash @/t t/'
def myreplace(match):
if match.group(1) is not None and match.group(2) is not None:
return match.group(1) + ' ' + match.group(2)
else:
return ''
print(re.sub(r'(?:([A-Za-z0-9]+)/([A-Za-z0-9]+))|(/)', myreplace, this_string))
print(re.sub(r'(?:([A-Za-z0-9]+)/([A-Za-z0-9]+))|(/)', myreplace, that_string))
关于python - 如何用正则表达式以不同的方式替换某些正斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54317952/
我是一名优秀的程序员,十分优秀!