2015-01-07 2 views
0

Я регулярное выражение новичка, и я хочу, чтобы преобразовать следующий метод Regex следовать передовой практике:Regex для stringify справ

public static string StringifyGUID(string strGUID) 
    { 
     ///TODO: Regex function 
     string stringifiedGUID = Regex.Replace(strGUID, "[{}]", ""); 
     string stringifiedGUID2 = stringifiedGUID.Replace("-", ""); 
     string stringifiedGUID3 = stringifiedGUID2.ToLower(); 
     return stringifiedGUID3; 
    } 

Также скажи, пожалуйста, есть ли какие-нибудь хорошие инструменты регулярных выражений можно использовать для помогите мне учиться. Любая помощь очень ценится, спасибо!

+4

Это не проблема Regex. Почему вы создаете 3 строки? Если вы предоставили образец ввода и вывода, было бы легче понять вас. – Jonesopolis

+0

Да, это было бы более болезненно в регулярном выражении, чем сейчас. Это требует вызова через tr, но это не так широко доступно как функция библиотеки. – Joshua

ответ

4

Вам не нужно регулярное выражение здесь - вы можете использовать Guid.Parse и Guid.ToString решить эту проблему легко:

public static string StringifyGuid(string s) 
{ 
    var guid = Guid.Parse(s); 
    return guid.ToString("N"); 
} 

ToString("N") указывает, что вы хотите только цифры без разделителей, as explained on MSDN.

Чтобы ответить на ваш второй вопрос, http://www.regular-expressions.info содержит множество подробных сведений и руководств, которые помогут вам учиться, а https://regex101.com поможет вам понять, протестировать и создать регулярные выражения.

+0

Спасибо, это сработало отлично. – user1403998

0

быстрый способ сделать это состоит в объединении Substrin метода и StringBuilder класса:

// Example of GUID to checking: 
// {6F9619FF-8B86-D011-B42D-00CF4FC964FF} 

var result = new StringBuilder(); 
result.Append(source.Substring(1, 8)); 
result.Append(source.Substring(10, 4)); 
result.Append(source.Substring(15, 4)); 
result.Append(source.Substring(20, 4)); 
result.Append(source.Substring(25, 12)); 
return result.ToString(); 

И вам не нужно регулярное выражение для этой простой задачи.

0

Не эксперт по Dot-Net, но вы можете сделать замену одним регулярным выражением.

Regex.Replace(strGUID, "[{}-]+", "");