Lea*_*... 2 regex vim sed substitution
我需要在一个大文本文件中替换所有出现的事件,例如'yw234DV w-23-sDf wef23s-d-f'使用相同的字符串但用下划线而不是引号内的所有空格的空格,而不用下划线替换引号外的任何空格。
我正在尝试在 vim 中找到替代解决方案,但也非常感谢 sed 解决方案。每个引号分隔的字符串中的标记数量可能会有所不同。
我一直在 vim 中使用一些正则表达式,但它们非常初级,似乎缺少我需要的东西。
我目前的尝试:
%s/'{[:alnum:] }*/'\0\_/g
Run Code Online (Sandbox Code Playgroud)
我正在尝试对此进行更改。
这与我的问题最相似,尽管它是 Java: 替换引号内的空格
样本输入:
'wiUEF7-gvouw ow wo24-RTeih we', 'yt23IT iug-76'
Run Code Online (Sandbox Code Playgroud)
示例输出:
'wiUEF7-gvouw_ow_wo24-RTeih_we', 'yt23IT_iug-76'
Run Code Online (Sandbox Code Playgroud)
你可以用 VIM 试试这个,在 Macvim 上试试这个:
%s/\%('[^']*'\)*\('[^']*'\)/\=substitute(submatch(1), ' ', '_', 'g')/g
Run Code Online (Sandbox Code Playgroud)
更简单的解决方案,感谢@SergioAraujo:
@%s/\v%(('[^']*'))/\=substitute(submatch(1),' ', '_', 'g')/g
Run Code Online (Sandbox Code Playgroud)
但是不确定,如果以下是您预期的结果 输出:
'wiUEF7-gvouw_ow_wo24-RTeih_we', 'yt23IT_iug-76'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |