当前位置: 首页 > 知识库问答 >
问题:

十进制(平方米)值的正则表达式

韦寒
2023-03-14

我有一个正则表达式无法验证我的输入。

我的正则表达式:\d{1,5}([\,]\d{0,2})

它应该使用.的分隔符验证平方米(十进制值),并且在分隔符之前最多允许五位数字(至少一位),在它之后最多允许两位。

因此它应该接受:
1
1,0
1.0
12345
12345,10
12345.10

但不是
.1
123456
12345,123


共有2个答案

湛光明
2023-03-14

你很接近。这种行为的正确正则表达式是:

^\d{1,5}(?:[\.,]\d{0,2})?$

一个修补.Net正则表达式的好工具:Expresso。http://www.ultrapico.com/Expresso.htm

丌官招
2023-03-14
匿名用户

在您要捕获的组中,([\,]\d{0,2}) ,您允许数字出现在0到2次之间,但是,整个组根据结尾标记为可选 。因此,应将范围设置为{1,2}:

\d{1,5}([\.,]\d{1,2})?

如果您的输入特别是一个数字(而不是一个完整的句子),我还建议添加一个前导^和一个结尾$。这将强制正则表达式从字符串的开头检查到结尾(分别)。最终的正则表达式应该是:

^\d{1,5}([\.,]\d{1,2})?$

如果您使用此正则表达式不仅仅用于验证,还想查看匹配的值,则应将匹配的当前组(小数部分)更改为非匹配组(将(更改为(?:)并在完整正则表达式周围添加括号:

^(\d{1,5}(?:[\.,]\d{1,2})?)$

 类似资料:
  • 我在寻找一个正则表达式,它允许数字具有小数点后的最大长度。 它应该允许最大16位数字和3位小数,但是最大16位应该包括小数,但不包括。字符。到目前为止,我已经尝试过了:,除了允许17个单个数字之外,它很接近,而它应该只接受16个。如果我将更改为,它会破坏小数。 可接受值: 123 123.3 123.45 123.456 1111111111111.345(共16个数字) 111111111111

  • 我需要编写正则表达式,以特殊符号捕获类型name的泛型参数(也可以是泛型的),如下所示: 假设类型名是,参数是,所以我只需要抓取,和 基本上,如果平衡组堆栈是空的,我需要采取一些措施,但我真的不明白怎么做。 UPD 下面的答案帮助我快速解决了这个问题(但没有适当的验证,深度限制=1),但我通过团队平衡成功地解决了这个问题: 演示 UPD2(上次优化)

  • 问题内容: 我有一个混合二进制数据和文本数据的文件。我想通过正则表达式解析它,但出现此错误: 我猜该消息意味着Python不想解析二进制文件。我正在打开带有标志的文件。 如何在Python中使用正则表达式解析二进制文件? 编辑: 我正在使用Python 3.2.0 问题答案: 我认为您使用Python 3。 1.以 二进制模式 打开文件很简单但是很微妙。与在文本模式下打开它的唯一区别是mode参数

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 问题内容: 我以前从未做过正则表达式,而且我发现它们对于处理字符串非常有用。我看到了一些教程(例如),但是我仍然不明白如何对字符串中的十六进制字符进行简单的Java正则表达式检查。 用户将在文本框中输入类似以下内容:我想知道该输入是正确的,否则,如果返回false时类似。 是否可以使用正则表达式来做到这一点,或者我是否误解了它们的工作原理? 问题答案: 是的,您可以使用正则表达式来做到这一点: 说