正则表达式在数字旁边而不是字母旁边选择“-”

时间:2018-07-25 22:14:18

标签: regex

https://regex101.com/r/czmlFD/6

请看一下我当前使用的正则表达式。我希望所有内容都保持不变,只是我不想让它拾取-non-gaap中的value-added,但它仍然必须拾取其他负数。

1 个答案:

答案 0 :(得分:1)

如何?

(?<!\S)[\$\(]{0,2}[-\d][\d,.]*\)?%?

(?<!\S)后面的否定表示断言,正则表达式不能出现在字母后面,这样可以消除匹配项中带连字符的字符串。

另外,从\$?\(?[\$\(]{0,2}开头的更改将意味着($2,605)中的左括号现在将包含在该匹配中,同时最多只允许两个美元符号和左括号彼此相邻。

最后,将集合中的0-9更改为\d将为您节省两个字符。

所有其他匹配项保持不变。

可以在 here 上看到它。