C#正则表达式仅在字符串中获取负数

时间:2018-12-07 20:26:12

标签: c# regex string

所以我的任务是在字符串中仅选择负数。但是,这是一个大问题。我的字符串由不同的负号组成(有些表示负数,有些表示减法)。

我的想法是得到负数,如果负数之前没有更多的数字。 我的正则表达式模式:

(\d{0}-)?\d+

与我想像的方式不一样的方式:

((?!\d)-)?\d+

我在这段文字上测试了这种模式:

-1 2 (33-44)

我的期望: -1 2 33 44

结果: -1 2 33 -44

如您所见,最后的减号用于减法,它并不表示负数。

1 个答案:

答案 0 :(得分:1)

通过使用Negative Lookbehindimport static android.content.Context.MODE_PRIVATE; ),检查?<!前面是否有一个或多个数字,您可以得到预期的结果:

-

Example

为了只匹配字符串中的负数,您需要使(?<!\d+)-?\d+ 成为必需:

-

Example