Я пытаюсь искать определенное ключевое слово в многострочный входной строки, как это,Обработка ввода многострочного - Loop против Regex
this is input line 1
this is the keyword line
this is another input line
this is the last input line
ввода нескольких строк хранится в переменной называется «$ входные данные". Теперь у меня есть 2 способа в виду, чтобы искать слово «ключевое слово»
Метод 1:
Использование раскола, чтобы поместить строки в массив с помощью «\ п» разделитель и перебирать и обрабатывать каждую строку, используя Еогеасп цикл, как это,
my @opLines = split("\n", $inputData);
# process each line individually
foreach my $opLine (@opLines)
{
# look for presence of "keyword" in the line
if(index($opLine, "keyword") > -1)
{
# further processing
}
}
Способ 2:
Используя регулярные выражения, как показано ниже,
if($inputData =~ /keyword/m)
{
# further processing
}
Я хотел бы знать, как эти 2 метода сравниваются друг с другом и что будет лучшим методом в отношении фактической производительности кода и времени выполнения. Кроме того, есть ли лучший и эффективный способ решения этой задачи?
Спасибо за отличный ответ! Разве не удалось получить последнюю часть, хотя с помощью^и $, вы могли бы уточнить? Извините, я немного новичок в regex ... –
Вам просто не нужно использовать модификатор 'm' после вашего регулярного выражения, если вы не используете'^'или' $ 'в своем регулярном выражении. Он будет работать так же. –