C#中内存分配的正则表达式

时间:2014-04-05 16:22:35

标签: c# regex ram

我需要一个正则表达式,用于多个数字和一个字母字符。我的目标是使用 -Xmx -Xms 获取在Java虚拟机中设置内存的正则表达式,因此需要传递以下字符串:

-1024k
-512M
-8g
-2048m

所以需要做的是正则表达式传递1024的倍数,除非字母是 g G

这是我现在使用的代码,甚至没有工作。将非常感谢帮助

(Regex.IsMatch(options[2], "\\d\\^[KkGgMm]$") ? options[2] : "");

2 个答案:

答案 0 :(得分:1)

你也许可以试试:

(Regex.IsMatch(options[2], @"^-\d+[KkGgMm]$") ? options[2] : "");

或者,如果你真的想使用正则表达式来验证数字(不建议,并且它也有限制),你会得到类似的东西:

(Regex.IsMatch(options[2], @"^-(?:\d+[Gg]|(?:128|256|512|1024|2056)[MmKk])$") ? options[2] : "");

哪个也匹配-128m(和M,K和k类似),256,512,1024和2056,但不是更高。

答案 1 :(得分:0)

我不确定我是否理解你想要实现的目标。这是一个与输入字符串中的数字匹配的正则表达式,如果它是-xL形式(x是任意数字,L是除g或G之外的任何字母):

^\-(\d+)[^Gg]\b

您将拥有捕获组中的号码(如果有)