当前位置:  开发笔记 > 编程语言 > 正文

正则表达式 - 仅捕获旁边没有字母的数字

如何解决《正则表达式-仅捕获旁边没有字母的数字》经验,为你挑选了1个好方法。

我有一个任务是创建一个程序,它将匹配数字,而不是数字前面的数字.例如:

6X ^ 2 + 6×+ 6-57 + 8-9-90x

我正在尝试使用Regex在它们之前用+或 - 捕获所有数字 - 但之后没有x.我试过了

\[+-](\d+)[^x]

但它似乎也从'-90x'中捕获'-90'.



1> maksymiuk..:

正确的正则表达式是这样的:

@"[+-]((?>\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
"

你可以在这里测试一下

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有