Я вообще не использовал регулярные выражения, поэтому у меня возникли проблемы с поиском и устранением неисправностей. Я хочу, чтобы регулярное выражение соответствовало только тогда, когда строка содержала все числа; но с двумя приведенными ниже примерами он соответствует строке, содержащей все числа плюс знак равенства, такой как «1234 = 4321». Я уверен, что есть способ изменить это поведение, но, как я уже сказал, я никогда не делал многого с регулярными выражениями.Regex только для чисел
string compare = "1234=4321";
Regex regex = new Regex(@"[\d]");
if (regex.IsMatch(compare))
{
//true
}
regex = new Regex("[0-9]");
if (regex.IsMatch(compare))
{
//true
}
В случае, если это имеет значение, я использую C# и .NET2.0.
Почему бы не TryParse строку для этого простого случая? bool decimal.TryParse (строка string, out decimal result) или bool int.TryParse (строка string, out int result) – Makach 2010-11-03 09:55:28
Try.Parse будет принимать знак плюса или минуса в начале и в передних/конечных пробелах. – 2011-01-24 10:40:43
Вам нужно совместить _numbers_ или _digits_? Например: 123.456 - это число, но это не все цифры. – 2008-11-07 18:54:13