正则表达式匹配字符串中间的字符,但不包括它

时间:2015-02-04 12:39:07

标签: regex

我有以下字符串:

“123456-54321”

现在我想要一个让我回到“12345654321”的正则表达式。如果“12345654321”的输入也会返回“12345654321”,那也很好。但是例如输入“123-7471233”不会给我一个匹配。

这可以用正则表达式完成吗?我不能让它与积极或消极的看法一起工作。我正在使用.NET作为Regex库。

谢谢!

3 个答案:

答案 0 :(得分:1)

使用正则表达式

(\d{6})-?(\d{5})

并替换为$1$2

var output = Regex.Replace(input, @"(\d{6}-?(\d{5})", "$1$2");

答案 1 :(得分:0)

(?<=\d{6})-(?=\d{5})

您可以使用它来摆脱-。请参阅empty string的demo.Replace。

https://regex101.com/r/nU1nJ3/1

答案 2 :(得分:0)

与您的模式匹配的另一个正则表达式是^ [0-9] + - ?[0-9] + $。它会识别你的字符串。但正如之前所说,可能您正在寻找替代品,因此在您识别出字符串后,您需要删除破折号。即一无所获。