Соответствие слов в предложении, используя Perl? - PullRequest
0 голосов
/ 09 декабря 2011

Я хочу извлечь слова между двумя словами в Perl, но я не знаю, могу ли я использовать регулярное выражение или любую библиотеку для этого?

пример:

$sen = "A short quick brown fox jumps over the lazy dog running in the market";

@sentence = split / /, $sen;
foreach my $word (@sentence) {

}        

Я хочу получитьслова между коричневым и ленивым вместе с 2 словами слева и 2 словами справа.

output:

words between: fox jumps over the
2 words from left: short quick
2 words from right: dog running

как я могу придумать вышеприведенный вывод

1 Ответ

3 голосов
/ 09 декабря 2011

Это домашняя работа?Если это так, то вы должны сказать об этом в своем вопросе, и ответы, которые вы получите, будут направлены на то, чтобы помочь вам научиться, а не просто предлагать решение.

Вы объявляете массив с одним элементом, содержащим всю строку предложения,включая открытие и закрытие двойных кавычек.Это не может быть тем, что вы предполагали, поскольку ваш цикл будет выполняться только один раз с $ word, установленным в строку предложения.

Вы должны запустить каждую программу Perl с

use strict;
use warnings;

, чтобы упростить отладку.1008 *

Приведенный ниже код делает то, что вы описываете.

use strict;
use warnings;

my $sentence = "A short quick brown fox jumps over the lazy dog running in the market";
my @sentence = split ' ', $sentence;

my @sample = grep /fox/ .. /the/, @sentence;
print "words between: @sample\n";

@sample = @sentence[-2..-1];
print "2 words from right: @sample\n";

@sample = @sentence[0..1];
print "2 words from right: @sample\n";

ВЫХОД

words between: fox jumps over the
2 words from right: the market
2 words from right: A short
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...