Я хочу получить ASIA
из следующего образца.рубин regex для после точной строки
/scripts/skw.asp?term=&department=ASIA
Знаете ли вы, как я могу извлечь значение отдела из всего текста.
Я хочу получить ASIA
из следующего образца.рубин regex для после точной строки
/scripts/skw.asp?term=&department=ASIA
Знаете ли вы, как я могу извлечь значение отдела из всего текста.
string = "/scripts/skw.asp?term=&department=ASIA&a=b"
puts string[/department=(\w+)/, 1] # => "ASIA"
или вы можете разобрать это как запрос (который, на мой взгляд более уместно):
require 'cgi'
string = "/scripts/skw.asp?term=&department=ASIA&a=b"
query = string.split('?')[1] # => "term=&department=ASIA&a=b"
parsed_query = CGI::parse(query) # => {"term"=>[""], "department"=>["ASIA"], "a"=>["b"]}
puts parsed_query['department'][0] # => "ASIA"
Это не сработает, если в отделе содержится символ без слова, например, пространство с кодировкой URL, т. Е. '& Department = Customer% 20Service'. –
'/ department = (. +) &? /' –
str = '/scripts/skw.asp?term=&department=ASIA'
Вы можете использовать захват группы:
str[/\bdepartment=(.+$)/, 1]
#=> "ASIA"
или положительный lookbehind:
str[/(?<=\bdepartment=).+$/]
#=> "ASIA"
Хотя это интересный подход, оба решения возвращают неверный результат, если в конце будет другой параметр или если вы просто переключите позиции 'term' и' department' в существующей строке, подобной этой '/scripts/skw.asp? department = ASIA & term =' –
Я предположил из вопроса, что строка заканчивается возвращаемой подстрокой. Если это не так, нужно знать, как это будет определено, где заканчивается возвращаемая подстрока. Это не задано в вопросе, и я не сделал никаких предположений о том, откуда взялась строка или как она будет использоваться. –
Я не думаю, что '\ W' делает то, что вы думаете. Возможно, у вас был '\ b'. – pguardiario
Возможные дубликаты: [здесь] (https://stackoverflow.com/questions/7316656/how-to-get-query-string-from-passed-url-in-ruby-on-rails) и [ здесь] (https://stackoverflow.com/questions/2500462/how-to-extract-url-parameters-from-a-url-with-ruby-or-rails). – user4235730