正则表达式的力量

时间:2016-03-06 13:01:43

标签: regex

在这个正则表达式中(\d*)[\^*{2}](\d*)我试图捕获一个幂公式的数字:例如2 ^ 3应该返回2和3,而4 ** 5应该返回4和5.表达式只能工作在第一种情况下,任何想法?

2 个答案:

答案 0 :(得分:3)

*{2}位没有做你认为它正在做的事情,因为它在一个类([])中。它将接受类中的每个单独的字符(类中唯一的元字符是^-)。所以你的表达将接受121,1 {4等可能是这样的:

(\d+)(?:\^|\*{2})(\d+)

离标记更近。

答案 1 :(得分:1)

这是正确的:

(\d*)(?:\^|\*{2})(\d*)

您确实匹配[]内的所有内容,而这不是您想要的内容。