我想从提供的字符串中获取最后一个匹配项。目前,它是:
2 + 5 + 8e+d
。它应该从三个中选择第二个+
。
RegExp为[(\+\s)](?=[^(\+\s)]*$)
,它会选择第三个+
。
我知道这个问题非常简单,但是,没有,这些都有效:
[(\+\s)](?=[^(\+\s)]*$)
[(\+\s)](?=[^(\+)]*$)
[+](?=[^(+\s)]*$)
原始的RegExp如下:[-+*/](?=[^-+*/]*$)
,它选择了最后一个+
,-
,/
或*
。基本上,我想转换它,以便选择" +", " -", " *", " /"
。
最后并且左侧有一个空格(一个)。
您可以在此处测试:https://regexr.com/3lc1a。
答案 0 :(得分:3)
您可以使用
/\s[-+\/*](?!.*\s[-+\/*])/
请参阅regex demo
<强>详情
\s
- 空白[-+\/*]
- -
,+
,/
或*
(?!.*\s[-+\/*])
- 如果除了{0}以外的任何0+字符之后有-
,+
,/
或*
,则表示匹配失败。在当前位置的右边立即换行符号。如果输入中有多行,请将.*
替换为[^]*
或[\s\S]*
。
答案 1 :(得分:1)