Записи, где значение атрибута включено в строку [duplicate]

Мой вопрос заключается в том, что уничтожает \ MongoDB \ BSON \ ObjectID

json_encode будет кодировать только public свойства встречающихся объектов.

< blockquote>

как я могу заставить его остаться?

Вы могли бы передать его в строку перед кодировкой.

8
задан Boris Stitnicky 6 November 2012 в 04:06
поделиться

3 ответа

Я бы сделал это следующим образом:

require 'uri'

uri = URI.parse('http://something.example.com/directory/')
uri.host.split('.').first
=> "something"

URI встроен в Ruby. Это не самый полнофункциональный, но он достаточно способен выполнять эту задачу для большинства URL-адресов. Если у вас есть IRIs , посмотрите Addressable :: URI .

19
ответ дан the Tin Man 19 August 2018 в 01:14
поделиться
  • 1
    Мне это нравится. Хороший, элегантный и не дорогой. Благодаря! – marcamillion 6 November 2012 в 05:19
  • 2
    И это не требует от нас каких-либо регулярных выражений. – the Tin Man 6 November 2012 в 05:27
  • 3
    Да ... только то, что я искал. Спасибо Мэн !!! – marcamillion 6 November 2012 в 05:28
  • 4
    Tin Man оценивает как обычно. – Boris Stitnicky 6 November 2012 в 07:00

Вы можете использовать URI, например

uri = URI.parse("http://something.example.com/directory/")
puts uri.host
# "something.example.com"

, и тогда вы можете просто работать на хосте. Или есть жемчуг domainatrix из Удалите субдомен из строки в ruby ​​

require 'rubygems'
require 'domainatrix'

url = Domainatrix.parse("http://foo.bar.pauldix.co.uk/asdf.html?q=arg")
url.public_suffix       # => "co.uk"
url.domain              # => "pauldix"
url.subdomain           # => "foo.bar"
url.path                # => "/asdf.html?q=arg"
url.canonical           # => "uk.co.pauldix.bar.foo/asdf.html?q=arg"

, и вы можете просто взять субдомен.

7
ответ дан Community 19 August 2018 в 01:14
поделиться
  • 1
    Я думаю, что это хорошее общее решение для тех, кто хочет разбирать всевозможные URL-адреса. В моем случае, однако, мне просто нужно проанализировать определенный формат URL-адреса, который является foo.bar/somedir. – marcamillion 6 November 2012 в 05:20
  • 2
    @marcamillion Вот почему я дал вам и первую альтернативу, что и то, что ответил «Оловянный человек». – oldergod 6 November 2012 в 06:03
  • 3
    @oldergod: Насколько хорошо поддерживается эта доминатрикс? Является ли он зрелым? – Boris Stitnicky 6 November 2012 в 07:03
  • 4
    @BorisStitnicky Я никогда не использовал его и просто нашел его сегодня. Я не знаю. – oldergod 6 November 2012 в 09:47
  • 5
    @oldergod: Приятно знать. – Boris Stitnicky 6 November 2012 в 16:37

Ну, вы можете использовать регулярные выражения. Что-то вроде /http:\/\/([^\.]+)/, то есть первая группа non '.' письма после http. Проверьте http://rubular.com/ , вы можете проверить свои регулярные выражения на основе набора тестов, это отлично подходит для изучения этого инструмента:)

2
ответ дан resilva87 19 August 2018 в 01:14
поделиться
  • 1
    Я начал делать это, но он довольно запутанный довольно быстро. – marcamillion 6 November 2012 в 05:21
Другие вопросы по тегам:

Похожие вопросы: