如何理解复杂的正则表达式

时间:2012-04-27 03:22:46

标签: regex perl

我曾经看过一个正则表达式示例

^\s*(+-)?(\d+|\d*\.\d+|\d+\.\d*)(e?(+-)?......$

但我只是不知道如何理解/分析这个?

1 个答案:

答案 0 :(得分:7)

一次分析一下;如果您看到?*+,则会修改之前的“'”组。 (带括号的组,或\s等原子'或e等文字:

^            The start of the string
\s*          Zero or more whitespace characters.
(+-)?        An optional + or -
(
   \d+       One or more digits
 |           or
   \d*\.     Zero or more digits, followed by a .
   \d+       One or more digits
 |           or
   \d+\.     At least one digit, followed by a .
   \d*       Zero or more digits
)
(
 e?          An optional e
 (+-)?       An optional + or -

这里正则表达式落后了,​​我不确定.....是正则表达式中的.的文字系列,还是普通的省略号。但希望这是一个明确的解释。 (顺便说一句,$表示字符串')的结尾。