p e.backtrace
я выполнил его на сессии IRB, которая не имеет никакого источника, и это все еще дало соответствующую информацию
=> ["(irb):11:in `foo'",
"(irb):17:in `irb_binding'",
"/usr/lib64/ruby/1.8/irb/workspace.rb:52:in `irb_binding'",
"/usr/lib64/ruby/1.8/irb/workspace.rb:52"]
, Если Вы хотите приятно проанализированный след, следующий regex мог бы быть удобным:
p x.backtrace.map{ |x|
x.match(/^(.+?):(\d+)(|:in `(.+)')$/);
[$1,$2,$4]
}
[
["(irb)", "11", "foo"],
["(irb)", "48", "irb_binding"],
["/usr/lib64/ruby/1.8/irb/workspace.rb", "52", "irb_binding"],
["/usr/lib64/ruby/1.8/irb/workspace.rb", "52", nil]
]
(Regex/should/быть безопасным против странных символов на имена функций или каталоги/имена файлов) (Если Вы задаетесь вопросом, где нечто camefrom, я сделал определение для захвата исключения:
>>def foo
>> thisFunctionDoesNotExist
>> rescue Exception => e
>> return e
>>end
>>x = foo
>>x.backtrace
Вы хотели проверить, является ли введенный пользователем URL-адресом? Это может быть простое регулярное выражение, например проверка, содержит ли строка www.
(таким образом Yahoo Messenger проверяет, является ли статус пользователя ссылкой)
Надеюсь на помощь
I solved the problem using RegexKit, and build a quick regex to validate a URL;
NSString *regexString = @"(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+";
NSString *subjectString = brandLink.text;
NSString *matchedString = [subjectString stringByMatching:regexString];
Then I check if the matchedString is equal to the subjectString and if that is the case the url is valid :)
Correct me if my regex is wrong ;)