Симпатичные манипуляции со строками

У меня есть следующая строка, из которой я хочу извлечь части:

201 KAR 2:340.

В этом конкретном случае я хочу извлечь числа 201,2 и 340, которые я позже использую для объединения в другую строку :

http://www.lrc.state.ky.us/kar/201/002/340reg.htm

. У меня есть решение, но оно не легко читается и кажется довольно неуклюжим. Это включает в себя использование средней функции. Вот он:

intTitle = CInt(Mid(strFontTag, 
                    InStr(strFontTag, ">") + 1, 
                    (InStr(strFontTag, "KAR") - InStr(strFontTag, ">")) 
                           - 3))

Я хотел бы знать, возможно, есть лучший способ подойти к этой задаче. Я понимаю, что мог бы сделать некоторые описательные имена переменных, такие как intPosOfEndOfOpeningFontTag, чтобы описать, что делает первая функция InStr, но мне это все еще кажется неуклюжим.

Должен ли я использовать какую-то функцию разделения,или регулярное выражение, или какой-то более элегантный способ, который я еще не встречал? Я манипулировал строками таким образом в течение многих лет, и я просто чувствую, что должен быть лучший способ. Спасибо.

5
задан Toby Allen 29 June 2012 в 21:02
поделиться