查找并替换正则表达式

时间:2014-05-09 16:29:04

标签: regex

如何使用Regex查找并替换以下内容?

我想在{戴维斯:1987}

中改变\引用{戴维斯:细胞:1987}

并且引用{Gehring:GenesCells:1996}进入{Gehring:1996}

非常感谢。

3 个答案:

答案 0 :(得分:0)

您可以捕获第一个和最后一个冒号之后的元素,并使用简单的正则表达式替换:

s/\\cite\{(.*?):[^}]+:(.*?)\}/{\1:\2}

答案 1 :(得分:0)

正则表达式的选择可以使答案略有不同。使用POSIX

s/\\cite\{\([^:]*\):[^:]*:\([^}]*\)\}/\\cite{\1:\2}/

使用PCRE:

s/\\cite\{([^:]*):[^:]*:([^}]*)}/\\cite{\1:\2}/

请注意,在POSIX中,需要转义括号。

答案 2 :(得分:0)

您可以将以下正则表达式的匹配替换为空字符串:

\\cite|:.*(?=:)

Regular expression visualization

Demo