正则表达式替换:匹配连字符前面没有斜杠

时间:2010-06-23 23:21:25

标签: c# regex

如何在字符串中替换连字符,但忽略以斜线开头的连字符,例如:“Just-Testing-A-String - \ - 但我想留下这个爆炸”

3 个答案:

答案 0 :(得分:3)

如果您只想在\后面加一个连字符,那么可以使用正则表达式

(?<!\\)-

更新: 实际上我不相信有可能创建这样一个rexeg,因为在这种情况下你将不得不做两个替换:一个是

'-' to ' ' 

另一个是

'\-' to '-', 

所以你需要运行两个替换。我能想到的唯一一件事就是如果你把'''替换为''也可以。然后你可以使用以下正则表达式

((?<!\\)-)|(\\(?=-))

答案 1 :(得分:1)

尝试这样的事情:

正则表达式([^ \\]) -

替换$ 1YOURSTRING

答案 2 :(得分:0)

您使用的是哪种语言?我会根据使用的语言以不同的方式解决这个问题。

示例中的反斜杠实际上是在创建一个无效的转义字符,“ - ”会在大多数语言中引发错误。你的意思是前言斜杠,“/”?