我有一个包含数百行的文件,如:
[some text] - 1930
这是任意文本,然后是“空间破折号空间”,然后是四位数年份。
问题在于,任意文本有时也包含“空间破折号空间[数字]”。
我想用哈希符号替换最后一个破折号,但不能替换任何其他破折号。
换句话说:
lorem ipsum 24:1978 - 1981 - 1922
lorem ipsum 61:1954 - 1956年foorbar - 1929
会变成:
lorem ipsum 24:1978 - 1981#1922
lorem ipsum 61:1954 - 1956 foobar#1929
我搜索过Stackoverflow和WWW,但无法找到解决方案。
我该怎么做?
更新:感谢大家的答案;不要感谢沮丧的选民。
答案 0 :(得分:1)
—( \d+)$
#$1
<强>解释强>
— : literally —
( \d+) : group 1, a space followed by 1 or more digits
$ : end of line
给定示例的结果:
lorem ipsum 24: 1978 — 1981 # 1922
lorem ipsum 61: 1954 — 1956 foobar # 1929
答案 1 :(得分:1)
您可以尝试按props
-( \d{4})$
答案 2 :(得分:0)
—(?= \d{4}$)
替换:#
使用gm
标志(全局和多行)
lorem ipsum 24: 1978 — 1981 — 1922
lorem ipsum 61: 1954 — 1956 foorbar — 1929
lorem ipsum 24: 1978 — 1981 # 1922
lorem ipsum 61: 1954 — 1956 foorbar # 1929
—
按字面意思匹配(?= \d{4}$)
肯定前瞻确保后面是一个空格,后跟4个数字,后跟行尾($
是行尾断言)