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

Regex 如何理解一个复杂的正则表达式,regex,perl,Regex,Perl,我曾经看到一个正则表达式示例 ^\s*(+-)?(\d+|\d*\.\d+|\d+\.\d*)(e?(+-)?......$ 但我只是不知道如何理解/分析这一点?一次分析一点;如果您看到一个?、*、或+,则它修改了前面括号中的“组”或“原子”单位,如\s或类似e的文字: 这里正则表达式逐渐消失,我不确定是否。。。。。是正则表达式中.s的文本序列,或者只是一个普通的省略号。但希望这是一个清楚的解释。顺便说一下,$表示“字符串的结尾”。一次分析一点;如果您看到一个?、*、或+,则它修改了前面括号中

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

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

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

一次分析一点;如果您看到一个?、*、或+,则它修改了前面括号中的“组”或“原子”单位,如\s或类似e的文字:


这里正则表达式逐渐消失,我不确定是否。。。。。是正则表达式中.s的文本序列,或者只是一个普通的省略号。但希望这是一个清楚的解释。顺便说一下,$表示“字符串的结尾”。

一次分析一点;如果您看到一个?、*、或+,则它修改了前面括号中的“组”或“原子”单位,如\s或类似e的文字:


这里正则表达式逐渐消失,我不确定是否。。。。。是正则表达式中.s的文本序列,或者只是一个普通的省略号。但希望这是一个清楚的解释。顺便说一句,$的意思是“结束字符串”。

我怀疑这正是你看到的。括号不平衡。你也可以用它来解释正则表达式,比如use-YAPE::Regex::Explain;my$exp=YAPE::Regex::Explain->new$REx->Explain;+-的两个实例可能是bug,因为它的意思应该是[+-],我怀疑这正是您看到的。括号不平衡。你也可以用它来解释正则表达式,比如use-YAPE::Regex::Explain;my$exp=YAPE::Regex::Explain->new$REx->Explain;+-的两个实例可能是bug,因为它的意思是[+-]?并不意味着选项+或-。它表示可选的“+-”序列。它必须是+|-?实际上,它必须是\+|-,因为+|-,将是一个语法错误。但是,是的,我在猜测正则表达式要做什么,我假设匹配一个数字,比如-1.24e+45color,这是我对它实际功能的解释。我错过了+作为元字符的机会。我想是被括号弄得心烦意乱了。这也是OP的re中的一个问题。然而,+-?并不意味着选项+或-。它表示可选的“+-”序列。它必须是+|-?实际上,它必须是\+|-,因为+|-,将是一个语法错误。但是,是的,我在猜测正则表达式要做什么,我假设匹配一个数字,比如-1.24e+45color,这是我对它实际功能的解释。我错过了+作为元字符的机会。我想是被括号弄得心烦意乱了。这也是OP的一个问题。
^            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 -