英文:
Regex for Number (or) Number and Comma (or) Number Comma and Space (or) Number Comma Space Number
问题
以下是翻译好的内容:
我对正则表达式的学习还很新,我正在尝试实现以下内容。我会非常感谢任何能帮助我学习的人。
我尝试实现的目标是:
数字(或)数字和逗号(或)数字逗号和空格(或)数字逗号空格数字
我的正则表达式:(^\d$)|(^\d,+$)|(^\d\s+$)|(^\d,\s)+$|(^\d,+\d)$
完整的测试数据链接:https://regexr.com/5eogj
通过的数据:
- 11
- 11,11
- 1, 111,11
- 111,,,
- 11, [whitespace]
- 1 , 1
失败/无效的数据:
- ABC
- 除逗号和空格之外的任何特殊字符
- 111 1111
英文:
I am new to regex learning and I am trying to achieve the below. I will be really thankful to anyone who can help me in my learning
What I'm trying to achieve
Number (or) Number and Comma (or) Number Comma and Space (or) Number Comma Space Number
My Regex: (^\d$)|(^\d,+$)|(^\d\s+$)|(^\d,\s)+$|(^\d,+\d)$
Complete Test Data URL : https://regexr.com/5eogj
Pass Data
- 11
- 11,11
- 1, 111,11
- 111,,,
- 11, [whitespace]
- 1 , 1
Fail/Invalid Data
- ABC
- Any Special Characters other than comma and space
- 111 1111
答案1
得分: 1
你可以使用
^\s*\d+(?:\s*,+\s*\d*)*\s*$
在 regexr 的正则表达式测试 中可以看到测试结果。
当你在 Java 中使用它来验证输入字符串时,可以使用
str.matches("\\s*\\d+(?:\\s*,+\\s*\\d*)*\\s*")
详细信息
^
- 字符串开始\s*
- 0 个或多个空白字符\d+
- 1 个或多个数字(?:\s*,+\s*\d*)*
- 零个或多个重复的\s*
- 0 个或多个空白字符,+
- 一个或多个逗号\s*
- 0 个或多个空白字符\d*
- 零个或多个数字
\s*
- 0 个或多个空白字符$
- 字符串结尾。
英文:
You can use
^\s*\d+(?:\s*,+\s*\d*)*\s*$
See the regex tests at regexr.
When you use it in Java to validate your input strings, use
str.matches("\\s*\\d+(?:\\s*,+\\s*\\d*)*\\s*")
Details
^
- start of string\s*
- 0+ whitespaces\d+
- 1+ digits(?:\s*,+\s*\d*)*
- zero or more repetitions of\s*
- 0+ whitespaces,+
- one or more commas\s*
- 0+ whitespaces\d*
- zero or more digits
\s*
- 0+ whitespaces$
- end of string.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论