我的文件内容如下
abcd-12=jksjd-jkkj
xyzm-87=hjahf-tyewg-iuoiurew
zaqw-99=poiuy-12hd-jh-12-kjhk-4rt45
我想在等号的R.H.S上用'='后面的下划线符号替换hypen。
No of hypenated terms are variable in the lines, it can be 3 or 4 or 5
如何对整个文档执行此操作。左侧应该完好无损。
我想要的结果是:
abcd-12=jksjd_jkkj
xyzm-87=hjahf_tyewg_iuoiurew
zaqw-99=poiuy_12hd_jh_12_kjhk_4rt45
答案 0 :(得分:3)
一种选择是在正则表达式模式下进行以下查找和搜索:
Find: = ([^-]+)-([^-]+)$
Replace: = $1_$2
这里的策略是匹配并捕获出现在等式RHS上的连字符的两半。然后,用下划线分隔的两半替换。
编辑:
如果RHS确实有四个连字符,请使用:
Find: = ([^-]+)-([^-]+)-([^-]+)-([^-]+)$
Replace: = $1_$2_$3_$4
答案 1 :(得分:2)
这将替换单次通过中的任意数量的连字符:
(?:=|(?!^)\G).*?\K-
_
. matches newline
说明:
(?: # non capture group
= # equal sign
| # OR
(?!^) # negative lookahead, make sure we are not at the beginning of a line
\G # restart from last match position
) # end group
.*? # 0 or more any character but newline, not greedy
\K # forget all we have seen until this position
- # a hyphen
屏幕截图(之前):
屏幕截图(之后):
答案 2 :(得分:0)