【发布时间】:2017-01-30 19:26:22
【问题描述】:
我有这个正则表达式:
/(?:\-?[0-9a-zA-Z]+(?:\.?[0-9a-zA-Z]+)?+[\+\-\*\/\<\>\=])+\-?[0-9a-zA-Z]+(?:\.?[0-9a-zA-Z]+)?/
问题是我需要这个表达式可以解码的 n 组,但我不知道如何更改它。
我使用https://regex101.com/进行编辑,并删除了导致表达式无法正确匹配的?:。
常规输入类似于1+2-b*4/c or 1+a=3-b。
我需要的答案是这样的
full match[0] = 1+a=3-b
group[1] = '1'
group[2] = '+'
group[3] = 'a'
group[4] = '='
group[5] = '3'
group[6] = '-'
group[7] = 'b'
【问题讨论】:
-
你可以使用 2 个正则表达式(你的正则表达式用于验证,然后 "\d+" 用于获取所有组号)。
-
不只是单个字符,我使用像“字符串”这样的字符串或像 12 或 12.3 这样的数字,这个正则表达式匹配这种类型的输入,但我无法创建组以供以后操作@chris85跨度>
-
@chris85,谢谢老兄,这正是我想要的。