У меня есть переменная String, содержащая что-то вроде ABCD.asd.qwe.com:/dir1
. Я хочу извлечь часть ABCD
, то есть часть от начала до первого появления .
. Проблема в том, что перед .
могут быть почти любые символы (только буквенно-цифровые) любой длины. Поэтому я создал это регулярное выражение.Perl Regular Выражение подстроки выражения Expression?
if($arg =~ /(.*?\.?)/)
{
my $temp_name = $1;
}
Однако это дает мне пустую строку. Логика такова:
.*? - any character non-greedily
\.? - till first or none appearance of .
Что может быть неправильным?
Вы пытаетесь извлечь 'ABCD' или' ABCD.'? Будет ли '.' всегда присутствовать на входе? – ikegami
Я хочу извлечь только ABCD и не включая точку. –
Как насчет моего второго вопроса. Всегда ли будет входной сигнал '. '? – ikegami