Sag*_*Low 1 python regex str-replace
我想在字符串之前和之后在字符串中添加空格,前提是以下字符不是数字(9-0).我尝试了以下代码:
newLine = re.sub(r'([,]+[^0-9])', r' \1 ', newLine)
Run Code Online (Sandbox Code Playgroud)
但似乎\1是采用2个匹配的字符而不仅仅是逗号.例:
>>> newLine = "abc,abc"
>>> newLine = re.sub(r'([,]+[^0-9])', r' \1 ', newLine)
"abc ,a bc"
Run Code Online (Sandbox Code Playgroud)
预期产出:
"abc , abc"
Run Code Online (Sandbox Code Playgroud)
我怎么能告诉他们sub只拿"逗号"?
使用这个:
newLine = re.sub(r'[,]+(?![0-9])', r' , ', newLine)
Run Code Online (Sandbox Code Playgroud)
这里使用否定前瞻,(?![0-9])它检查逗号后面没有数字.
您的正则表达式不起作用,因为您([,]+[^0-9])在组中选择了逗号和下一个字符(使用)并在两侧放置了空格.
更新:如果它不仅是逗号和其他东西,那么将它们放在字符类中[]并\1使用组捕获它们()
newLine = re.sub(r'([,/\\]+)(?![0-9])', r' \1 ', newLine)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2154 次 |
| 最近记录: |