所以我的任务是在字符串中仅选择负数。但是,这是一个大问题。我的字符串由不同的负号组成(有些表示负数,有些表示减法)。
我的想法是,如果减号前没有数字,则得到负数。
我的正则表达式模式:
(\d{0}-)?\d+
与我想像不一样的模式:
((?!\d)-)?\d+
我在这段文字上测试了这种模式:
-1 2 (33-44)
我的期望:-1 2 33 44
结果:-1 2 33 -44
如您所见,最后的减号用于减法,它并不表示负数。
最佳答案
您可以通过使用Negative Lookbehind(?<!
)并检查-
前面是否有一个或多个数字来获得预期的结果:
(?<!\d+)-?\d+
Example
为了只匹配字符串中的负数,您需要使
-
成为必需:(?<!\d)-\d+
Example
关于c# - C#正则表达式仅在字符串中获取负数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53676392/