我知道这个东西已经被讨论了很多,但是我在尝试匹配以下内容时遇到了问题......
示例输入:“测试测试 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+ - 一个或多个数字
