2012-06-23 2 views
2

Как извлечь имена через регулярное выражение из строк имени = формат значения? Я хочу, чтобы получить из строкиКак извлекать имена через регулярное выражение из строк с именем = значение формата

saf asfgo = ==slwin[(*]? 
m||a=vd8228J)_+ 
sPiof+_ = vsfs=+":~lue3 

только имена:

saf asfgo 
m||a 
sPiof+_ 

заменяется без первого знака равенства и пробельного предшествующему ему.

upd. Я попытался использовать ^.+(?=[ \t]*?=) upd2. Сожалею. Я быстро нашел решение: ^.+?(?=[ \t]*=)

+0

Что такое язык? Вы можете пометить его? – nhahtdh

ответ

1

Тест

if ($subject =~ m/(?im)^([^=\r\n]+?)\s*=\s*([^=\r\n]+?)$/) { 
    $name = $1; 
    $value = $2; 
} else { 
    $name = ""; 
    $value = ""; 
} 
+0

Да, это здорово. Группы - это то, что мне нужно. Теперь я могу получить обрезанное имя и обрезанное значение^(. +?) [\ T] * = [\ t] * (. +? $). Благодарю. –

+0

@AlexBomb: Добро пожаловать. – Cylian