我正在尝试找到一个基于南亚编号系统的正则表达式,以逗号分隔大量数字。
一些例子:
1,000,000
(阿拉伯文)是10,00,000
(印度/印度/南亚)1,000,000,000
(阿拉伯文)是100,00,00,000
(印度文/ H / SA)。逗号模式每7位重复一次。例如, 1,00,00,000,00,00,000
。
从Friedl撰写的Mastering Regular Expressions一书中,我有以下阿拉伯数字系统的正则表达式:
r'(?<=\d)(?=(\d{3})+(?!\d))'
对于印度编号系统,我想出了以下表达式,但不适用于超过8位数字的数字:
r'(?<=\d)(?=(((\d{2}){0,2}\d{3})(?=\b)))'
使用上述模式,我得到100000000,00,00,000
。
我正在使用Pythonre
模块(re.sub()
)。有任何想法吗?
尝试这个:
(?<=\d)(?=(\d{2}){0,2}\d{3}(\d{7})*(?!\d))
例如:
>>> import re
>>> inp = ["1" + "0"*i for i in range(20)]
>>> [re.sub(r"(?<=\d)(?=(\d{2}){0,2}\d{3}(\d{7})*(?!\d))", ",", i)
for i in inp]
['1', '10', '100', '1,000', '10,000', '1,00,000', '10,00,000', '1,00,00,000',
'10,00,00,000', '100,00,00,000', '1,000,00,00,000', '10,000,00,00,000',
'1,00,000,00,00,000', '10,00,000,00,00,000', '1,00,00,000,00,00,000',
'10,00,00,000,00,00,000', '100,00,00,000,00,00,000',
'1,000,00,00,000,00,00,000', '10,000,00,00,000,00,00,000',
'1,00,000,00,00,000,00,00,000']
作为评论正则表达式:
result = re.sub(
r"""(?x) # Enable verbose mode (comments)
(?<=\d) # Assert that we're not at the start of the number.
(?= # Assert that it's possible to match:
(\d{2}){0,2} # 0, 2 or 4 digits,
\d{3} # followed by 3 digits,
(\d{7})* # followed by 0, 7, 14, 21 ... digits,
(?!\d) # and no more digits after that.
) # End of lookahead assertion.""",
",", subject)
问题内容: 在我的一个项目中,我不得不处理逗号分隔文件(CSV)。我必须基于逗号来拆分数据,而忽略引号内的逗号(即),因此我使用了另一个堆栈溢出问题(Java:拆分逗号分隔的字符串但忽略了引号中的逗号)中提到的表达式。一切工作都很好,直到最近我才注意到它不适用于下面提到的一种特定情况。 我需要在逗号上拆分的数据字符串为: 以我的理解为基础 拆分后的数据应返回一个大小为10的数组,该数组的后两个索引
问题内容: 我需要一个正则表达式模式,该模式只接受输入字段的逗号分隔值。 例如:。它应该拒绝像这样的值: 我还需要接受分号分隔的值。有人可以为此建议一个正则表达式模式吗? 问题答案: 最简单的形式: 演示在这里。 我只需要限制字母。我怎样才能做到这一点 ? 使用正则表达式(包括示例Unicode字符范围): 演示在这里。 用法示例: Java演示。
问题内容: 我的文字如下: 谁能告诉我我必须使用哪些正则表达式分度数才能获得以下结果: 我在这里阅读Sun教程,直到“ Matcher类的方法”为止,但我仍然茫然。谢谢! 如果是这样,那将很容易,但是不幸的是,事实并非如此。有任何想法吗? 问题答案: 您可以直接使用split()方法,如下所示: (请注意,这将返回长度为5的数组,第一个位置为空字符串) 或者,如果您想使用模式/匹配器,可以这样做:
我使用以下正则表达式来验证单个电子邮件地址。如何使此正则表达式接受以逗号分隔的电子邮件地址列表? 我使用razor视图将正则表达式放置在输入标记中:
我在Javascript中有以下正则表达式: 这将检查字符串是否至少有两个大于1个字符的单词。 前- 我现在有了一个新的要求,我试图实现它,但不能正确执行。 新要求:能够有一个逗号分隔的相同类型的输入列表。不能以逗号结尾。根据上述规则,每个项目必须有效 如果没有逗号,则其也是有效的 所有字符都是字母,没有数字/特殊字符
我需要一个. Net(C#)正则表达式来匹配逗号分隔的数字列表,如果有逗号作为最后一个字符,这些数字将不匹配 我已经找到了这个Regex但是当结尾有逗号时匹配 什么是符合这种模式的正则表达式模式? 编辑:为清晰起见添加了1个示例,正确答案适用于