Может кто-нибудь объяснить мне, почему этот код вызывает формирование бесконечного цикла. В нем нет циклов, кроме выражений регулярных выражений, и я просто не понимаю.C++ CLI Regex вызывает бесконечный цикл
System::String^ bytesOnly;
System::String^ size = "54kb (54,568 bytes)";
Regex^ r;
Regex^ regex;
r = gcnew Regex("[\(]");
Match^ exch2010 = r->Match(size);
if (exch2010->Success){
String^ pattern = "(?<=\()(.*)(?=\sb)";
regex = gcnew Regex(pattern);
Match^ m = regex->Match(size);
if (m->Success){
bytesOnly = m->Value;
}
else{
bytesOnly = "-1";
}
regex = gcnew Regex("[^0-9-]");
bytesOnly = regex->Replace(bytesOnly, "");
}
else{
regex = gcnew Regex("[^0-9-]");
bytesOnly = regex->Replace(bytesOnly, "");
}
Я использую регулярное выражение сначала проверить, если есть «(» в размера переменной, а затем поместить «54,568» число из строки в переменную в bytesOnly.
Наконец, я удалить все, кроме чисел от bytesOnly. Кажется, довольно просто, но когда я запускаю его я получаю бесконечный цикл.
Ответы на вопросы не очень хорошие ... –
@JochenKalmbach, Почему вы так говорите? http://meta.stackexchange.com/questions/17845/etiquette-for-answering-your-own-question. В стороне, качество вопроса и ответа невелико. –
@MattSmith: Хороший вопрос ... не знал, что .. извините –