Lasna Asked:2022-07-26 20:33:28 +0800 CST2022-07-26 20:33:28 +0800 CST 2022-07-26 20:33:28 +0800 CST 请帮我写这个正则表达式。 772 如果这样的字符串是“111.111,32”,则必须选择小数点前的数字: 如果字符串是“111,111.32”,则必须选择直到该点的数字: 并务必检查逗号或点后是否只有 2 位数字。就像我们的例子一样 - 32。 如何用一个正则表达式做到这一点? 像这样尝试: (?(?=.).+?(?=,)|.+?(?=.)) регулярные-выражения 2 个回答 Voted Alexander Petrov 2022-07-26T20:41:11+08:002022-07-26T20:41:11+08:00 正则表达式: ^(.*?)[,.]\d{2}$ 结果将在组中。 C# 中的示例: var values = new string[] { "111.111,32", "111,111.32" }; foreach (var value in values) { var match = Regex.Match(value, @"^(.*?)[,.]\d{2}$"); Console.WriteLine(match.Groups[1]); } Best Answer ipatev_nn 2022-07-26T21:17:45+08:002022-07-26T21:17:45+08:00 正则表达式 ^\d+[.,]\d+(?=[.,]\d{2}$) ^- 行首 \d- 数字 +- 前一个模式的一个或多个匹配 [.,]- 点或逗号 (?=...)- 正向前瞻,未捕获 {2}- 前一个模式的两个匹配 $- 行尾 JS 示例: const regex = /^\d+[.,]\d+(?=[.,]\d{2}$)/gm; // Alternative syntax using RegExp constructor // const regex = new RegExp('^\\d+[.,]\\d+(?=[.,]\\d{2})', 'gm') const str = `123,111.32 321.111,32 111.111.111.111 abc.12 123.321 `; console.log(str.match(regex));
正则表达式:
结果将在组中。
C# 中的示例:
正则表达式
^
- 行首\d
- 数字+
- 前一个模式的一个或多个匹配[.,]
- 点或逗号(?=...)
- 正向前瞻,未捕获{2}
- 前一个模式的两个匹配$
- 行尾JS 示例: