例如,字符串可以采用以下两种形式,其中美元符号可以出现在数值之前或之后:
I added 5$ to my piggy bank 2 days ago
I added $5 to my piggy bank 2 days ago
这是我用来获取美元值的正则表达式:
\$(\d+)|(\d+)\$
但是这有2个捕获组来捕获字符串中的数字。我希望能够引用单个捕获组的数值。有没有其他方法可以实现这个正则表达式?
发布于 2021-07-23 10:21:26
如果支持lookarounds,则不带组(请参见demo)。
(?<=\$)\d+|\d+(?=\$)如果不支持后视(此demo),则仅通过前视。
(?=\$\d|\d+\$)\$?(\d+)PCRE例如。PHP甚至有了一个branch reset group (另一个demo)。
(?|\$(\d+)|(\d+)\$)https://stackoverflow.com/questions/68493267
复制相似问题