Regex 试图与正则表达式匹配

Regex 试图与正则表达式匹配,regex,Regex,下面的文本开头有一个可变的空格: Total Saving: 84% 我找不到火柴。从我到目前为止所学到的(新的正则表达式)。这应该是接近工作(我只需要在文本的任何一边匹配): [\s]*总存储量:[0-9%]* 我做错了什么?您没有指定保存结果的捕获组,并且百分比符号%在字符串中不应出现多次 \s*总保存量:\s*([0-9]+)%(中间的空格更灵活一些)-第一组将包含实际百分比。尝试: /^\s+Total\sSaving:\s+([0-9]{1,3})%$/ 仅获取

下面的文本开头有一个可变的空格:

       Total Saving: 84%
我找不到火柴。从我到目前为止所学到的(新的正则表达式)。这应该是接近工作(我只需要在文本的任何一边匹配):

[\s]*总存储量:[0-9%]*


我做错了什么?

您没有指定保存结果的捕获组,并且百分比符号
%
在字符串中不应出现多次

\s*总保存量:\s*([0-9]+)%
(中间的空格更灵活一些)-第一组将包含实际百分比。

尝试:

   /^\s+Total\sSaving:\s+([0-9]{1,3})%$/

仅获取数字(我假设其范围为0..100)。适用于多行。

它与您想要的有什么不同?除非在
总保存之前或之后没有空格:
,因为正则表达式中的文字空格很重要。您的正则表达式还将匹配“总保存:%123%123%%”;您可以将其更改为“[\s]*总储蓄:[0-9]+%”最后的$/m在做什么?和{1,3}?^..$表示整行由正则表达式匹配。我认为这里不需要m,因为正则表达式不寻找换行符(m表示:between^..$可以是换行符(\n))。我纠正了这个,谢谢。{1,3}表示必须有1到3个数字我强烈建议阅读Jeffrey Friedl(O'Reilly)的《掌握正则表达式》。这样你就可以更快地成为一名。