从标题中可以看出,我想编写一个正则表达式模式来查找由各种数字组成的字符串,并且每三个数字用逗号分隔。字符串的长度可以变化。
我对正则表达式仍然很陌生,所以任何人都可以帮助我吗?非常感谢提前。
P.S。 任何人都可以建议一些好的资源,比如网站,书籍等,用于学习正则表达式吗?
答案 0 :(得分:4)
这个正则表达式应该匹配:
\d{1,3}(?:,\d{3})*
如果要将匹配排除到格式错误的模式的子字符串,您可能希望这样做:
(?:\A|[^,\d])(\d{1,3}(?:,\d{3})*)(?:\z|[^,\d])
第一个正则表达式的解释
\d{1,3} 1 to 3 consecutive numerals
,\d{3} A comma followed by 3 consecutive numerals
(?:,\d{3})* Zero or more repetition of a non-capturing group of a comma followed by 3 consecutive numerals
第二个正则表达式的解释
(?:\A|[^,\d]) A non-capturing group of either the beginning of the string, or anything other than comma or numeral
(\d{1,3}(?:,\d{3})*) A capturing group of 1 to 3 consecutive numerals followed by zero or more repetition of a non-capturing group of a comma followed by 3 consecutive numerals
(?:\z|[^,\d]) A non-capturing group of either the end of the string, or anything other than comma of numeral
答案 1 :(得分:0)
尝试使用http://regexlib.com获取良好示例和指向工具的链接,以帮助您快速了解RegEx
另请尝试使用此正则表达式测试器应用http://www.ultrapico.com/Expresso.htm
我之前使用过的另一个工具http://osherove.com/tools