我有一个任务是创建一个程序,它将匹配数字,而不是数字前面的数字.例如:
6X ^ 2 + 6×+ 6-57 + 8-9-90x
我正在尝试使用Regex在它们之前用+或 - 捕获所有数字 - 但之后没有x.我试过了
\[+-](\d+)[^x]
但它似乎也从'-90x'中捕获'-90'.
正确的正则表达式是这样的:
@"[+-]((?>\d+))(?!x)"
替代非.NET解决方案:
[+-](\d++)(?!x)
@" [+-] // Prefix non captured ( // Begin capturing group (?> // Begin atomic (non-backtracking) group - this part is essential \d+ // One or more digits ) // End atomic group ) // End capturing group (?! // Begin negative lookahead x // 'x' literal ) // End negative lookahead "
你可以在这里测试一下