Skip to main content
 首页 » 编程设计

C# 正则表达式匹配特殊字符

2024年02月20日29落叶

我知道这个东西已经被讨论了很多,但是我在尝试匹配以下内容时遇到了问题......

示例输入:“测试测试 310-315”

我需要一个正则表达式来识别数字后跟破折号,并返回 310。不过,我如何在正则表达式中包含破折号。所以最终的匹配结果将是:“310”。

非常感谢-kcross

编辑:此外,我将如何做同样的事情,但前面有破折号,但是也考虑到破折号后面的数字可能是负数......没想到这个当我立即写下问题时。例如:“test test 310--315”返回-315,“test 310-315”返回315。

请您参考如下方法:

Regex regex = new Regex(@"\d+(?=\-)"); 

\d+ - 寻找一位或多位数字

(?=\-) - 确保后面跟一个破折号

@只是消除了对反斜杠进行转义以使编译器满意的需要。

此外,您可能需要这个:

\d+(?=\-\d+) 

这将检查一个或多个数字,后跟一个破折号,然后是一个或多个数字,但只匹配第一组。


为回应您的评论,这里有一个正则表达式,用于检查 - 后面的数字,同时考虑潜在的负数 (-):

Regex regex = new Regex(@"(?<=\-)\-?\d+"); 

(?<=\-) - 否定后视,它将检查并确保前面有一个 -

\-? - 检查零个或一个破折号

\d+ - 一个或多个数字