Latest web development tutorials

Perl регулярные выражения

Regex (регулярное выражение) описывает набор строк, которые могут быть использованы, чтобы проверить, содержит ли строка определенную подстроку совпадающую подстроку действительно заменить или удалить условие совпадение подстроки из строки и так далее.

Perl регулярное выражение функция языка является очень мощным, в основном самый мощный общий язык, многие конструкции языка регулярное выражение поддержки, когда они являются ссылкой на Perl регулярные выражения.

Три формы Perl регулярных выражений совпадают, замену и преобразование:

  • Матч: м / / (Также сокращенно / / Опущено м)

  • Заменить: s / / /

  • Преобразование: TR / / /

Эти три формы и , как правило ,= ~ или! ~При использовании = ~ представляет матч! ~ Сказал , что они не совпадают.


оператор Match

Матч оператор м // используется для сопоставления строку или регулярное выражение заявление, например, чтобы соответствовать скалярная $ бар в "перспективе", код выглядит следующим образом:

#!/usr/bin/perl

$bar = "I am w3big site. welcome to w3big site.";
if ($bar =~ /run/){
   print "第一次匹配\n";
}else{
   print "第一次不匹配\n";
}

$bar = "run";
if ($bar =~ /run/){
   print "第二次匹配\n";
}else{
   print "第二次不匹配\n";
}

Вышеприведенная программа, выход:

第一次匹配
第二次匹配

Сопоставление по шаблону модификаторов

Есть некоторые общие сопоставления с образцом модификаторов, следующим образом:

Модификаторы описание
Я Игнорировать режим капитализации
м Режим Многоканальный
о Только один раз назначен
s Режим одиночной линии "." Матч "\ П" (по умолчанию не соответствует)
х Игнорировать пустой режим
г Глобальный матч
CG После провала глобального согласования, позволяет найти соответствующий строку снова

Regex переменные

Perl будет существовать после обработки, чтобы соответствовать значению трех специального имени переменной:

  • Передняя часть строки соответствиячасти: $ `
  • $ &: Matching строка
  • $ ': Не матч для остальных строк

Если эти три переменных вместе, вы получите исходную строку.

Примерами могут служить следующие:

#!/usr/bin/perl

$string = "welcome to w3big site.";
$string =~ m/run/;
print "匹配前的字符串: $`\n";
print "匹配的字符串: $&\n";
print "匹配后的字符串: $'\n";

Выше вывода программы:

匹配前的字符串: welcome to 
匹配的字符串: run
匹配后的字符串: oob site.

операторы Замена

Замена-оператора /// Оператор должен соответствовать расширению использования новой строки, чтобы заменить указанную строку. Базовый формат выглядит следующим образом:

s/PATTERN/REPLACEMENT/;

КАРТИНЫ, чтобы соответствовать шаблону, ЗАМЕНА, чтобы заменить строку.

Например, "Google" Мы заменим следующую строку является "w3big":

#!/usr/bin/perl

$string = "welcome to google site.";
$string =~ s/google/w3big/;

print "$string\n";

Выше вывода программы:

welcome to w3big site.

Модификатор операции замены

Заменить модификатор операции следующим образом:

Модификаторы описание
Я Если добавить "я" в модификаторе, то обычная чувствительность к регистру будет отменен, "а" и "А" одно и то же.
м По умолчанию начать регулярные "^" и заканчиваются "$" только для регулярной строки, если в сочетании с модификатором "м", то начало и конец каждой строки будет ссылаться на строку: В начале каждой строки "^", конец является "$".
о Выражение выполняется только один раз.
s Если добавить "S" в модификаторе, то по умолчанию "." От имени любого символа, кроме символа новой строки будет любой символ, включая символ новой строки!
х Если добавить модификатор, выражение пустые символы будут проигнорированы, если оно не было убежали.
г Заменить все соответствующие строки.
е В качестве выражения замены строки

Операторы преобразования

Ниже приведен оператор преобразования, связанные модификаторы:

Модификаторы описание
с Преобразование всех символов, не указано
d Удалить все указанные символы
s То же выход сократился до множества характера

Следующие примеры переменной $ строка во всех строчных букв преобразуются в верхний регистр:

#!/usr/bin/perl 

$string = 'welcome to w3big site.';
$string =~ tr/a-z/A-z/;

print "$string\n";

Выше вывода программы:

WELCOME TO w3big SITE.

В следующем примере используется переменная $ строка / с повторяющихся символов удалены:

#!/usr/bin/perl

$string = 'w3big';
$string =~ tr/a-z/a-z/s;

print "$string\n";

Выше вывода программы:

runob

Другие примеры:

$string =~ tr/\d/ /c;     # 把所有非数字字符替换为空格
$string =~ tr/\t //d;     # 删除tab和空格
$string =~ tr/0-9/ /cs    # 把数字间的其它字符替换为一个空格。

Другие правила регулярных выражений

выражение описание
, Матч все символы, кроме символа новой строки
х? Матч 0 или строка х
х * Матч 0 или более раз х строка, но минимальное количество возможных совпадений
х + Матч 1 или более раз х строка, но минимальное количество возможных совпадений
. * Матч 0 или несколько раз любой символ
+. Матч 1 или несколько раз любой символ
{M} Точно соответствует указанному строку м
{M, N} Матчей м или более или менее указанная строка п
{М,} Матч м или более указанной строкой
[] Который соответствует символ внутри []
[^] Матч не отвечает символов в []
[0-9] Матч все числовые символы
[Az] Матч всех строчных алфавитных символов
[^ 0-9] Матч все нечисловые символы
[^ Az] Соответствует любому строчных алфавитных символов
^ Символ, который соответствует началу
$ Матчи конечный характер персонажа
\ D Совпадает с цифрой, и [0-9] тот же синтаксис
\ D + Матч несколько числовую строку, и [0-9] + синтаксис, как
\ D Нецифровом, другой с \ D
\ D + Нецифровом, другой с \ D +
\ W Строка букв или цифр, и [A-Za-Z0-9] синтаксис, как
\ W + И [A-Za-Z0-9] + синтаксис, как
\ W Неанглийские буквы или цифры, строки и [^ A-Za-Z0-9] тот же синтаксис
\ W + И [^ A-Za-Z0-9] + синтаксис, как
\ S Пространства и [\ п \ т \ г \ е] имеет тот же синтаксис
\ S + И [\ п \ т \ г \ е] + а
\ S Некосмическими, и [^ \ п \ т \ г \ е] имеет тот же синтаксис
\ S + И [^ \ п \ т \ г \ е] + синтаксис, как
\ B Латинские буквы, цифры граница строки соответствия
\ B Несовместимость в алфавитном порядке, численное граница строки
а | B | C В соответствии со строкой символов соответствие символ или б или символ
азбука Abc соответствие строка (шаблон) содержит () будет помнить этот символ, чтобы найти строку, это очень полезный синтаксис. Первая строка (в пределах) обнаружили, эта переменная становится $ 1 или \ 1 переменная, а второй (внутренний) нашел переменную строку в переменную $ 2 или \ 2, и так далее вниз.
/ Шаблон / я я Этот параметр указывает, игнорировать регистр на английском языке, то есть, когда строка матча, не обращая внимания случай вопрос на английском языке. \ Если вы хотите найти специальный символ в режиме паттерна, такие как "*", придется добавить перед символом на \ символ, это позволит специальные символы терпеть неудачу