gpt4 book ai didi

c# - 正则表达式仅匹配整数

转载 作者:行者123 更新时间:2023-11-30 20:20:38 30 4
gpt4 key购买 nike

如标题所述,我正在尝试构建一个正则表达式以从字符串中提取整数。实际情况是,我有一个非常大的代码文件(整数)和一些值(小数)。

我可以使用 [\d]*([.,][\d]*) 成功提取小数。 (这可能看起来很奇怪,但我也在捕获 .1 或 1。)。但是我不能提取整数,直到现在我有类似 [\d]*([\d]*)[\d] 的东西。我也尝试过 ^[\d]+$ 但没有成功。

我将在 C# 应用程序中使用此正则表达式,因此我不知道是否有任何其他“规则”适用。

Regex ex = new Regex(@"MY_REGEX", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);

这可能是重复的,但我无法弄清楚。

拥有

0066 435sxxzx 23454 2 3 45 06 11.3243 sds435 adc234wer

我只想匹配

0066 23454 2 3 45 06

这是 regex101 中的示例

最佳答案

确保环视两端没有小数分隔符:

\b(?<!\.)\d+(?!\.)\b

参见 regex demo

C#(您似乎不需要忽略大小写标志作为 . 并且数字没有大小写变体):

var ex = new Regex(@"\b(?<!\.)\d+(?!\.)\b", RegexOptions.CultureInvariant);

正则表达式分解:

  • \b - 单词边界(我们要求数字之前的字符是非单词字符或字符串的开头
  • (?<!\.) - 这个字符不能是点
  • \d+ - 匹配 1 个以上的数字...
  • (?!\.) - 仅当不跟随 .
  • \b - 但必须有一个非单词字符或字符串结尾。

enter image description here

关于c# - 正则表达式仅匹配整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35912778/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com