2013-03-26 5 views
0

Возможно ли это?Совпадение между двумя символами

Из этой строки:

string = "lsdfh892pr23hr4342pr3j4r\n\nwww.foobar.com•\nyahoogooglebing" 

Я хочу, чтобы извлечь "www.foobar.com".

И из этого один:

string = "lsdfh892pr23hr4342pr3j4r\n\[email protected]•\nyahoogooglebing" 

Я хочу, чтобы извлечь "[email protected]".

+0

Что вы хотите извлечь? Строки, которые соответствуют шаблону домена, или строки между новыми строками? – Gael

+0

строка между \ n \ n и ... – sambehera

ответ

5

Я не знаю синтаксис рубиновый, но это регулярное выражение должно работать:

/\n\n([^•]*)•/ 
+0

спасибо за попытку! – sambehera

+1

Это будет сделано. В Ruby вы можете просто «email = string [/ \ n \ n ([^ •] *) • /, 1]' или более просто: 'email = string [/ \ n \ n (. +?) •/, 1] ' – Phrogz

+0

@Phrogz Я добавил флаг/m после вашего регулярного выражения, и он отлично работал! не могли бы вы дать ему ответ? и я приму это! – sambehera

1

Я бы не заморачиваться с регулярным выражением:

string = "lsdfh892pr23hr4342pr3j4r\n\nwww.foobar.com•\nyahoogooglebing" 
string.split("\n")[2][0..-2] 
=> "www.foobar.com" 

string = "lsdfh892pr23hr4342pr3j4r\n\[email protected]•\nyahoogooglebing" 
string.split("\n")[2][0..-2] 
=> "[email protected]" 
+1

split - это простой вид регулярного выражения, и здесь он не упрощает код, делает извлечение менее гибким (вы не знаете, если электронные письма или домены находятся на третьей строке каждый раз) и не улучшают производительность , – Gael

+0

Да, 'split' принуждает строку' '\ n" 'к регулярному выражению, но он освобождает OP, нуждающийся в обслуживании любого более сложного шаблона. Это зависит от того, будет ли строка всегда иметь имя сайта в третьей строке. В этом случае, это согласуется с данными данных данных, и так же безопасно предположить, как предполагается, что всегда есть «пуля» или два продолжения «\ n». –

+0

Хорошо, регулярные выражения могут быть сложными для обслуживания. Тем не менее, я думаю, что я предпочитаю код с хорошей семантикой. И 'split' не делается специально для извлечения контента. – Gael

Смежные вопросы