g означает глобальное совпадение
m означает, что можно сопоставить несколько строк
я означает сопоставление без учета регистра
^ соответствует началу входной строки
$ соответствует концу входной строки
* Соответствует предыдущему подвыражению ноль или более раз. Эквивалентно {0,}.
+ Соответствует предыдущему подвыражению один или несколько раз. Эквивалент {1,}.
? Соответствует предыдущему подвыражению ноль или один раз. Эквивалентно [0,1}, если за этим символом следует любой другой спецификатор (*, +, ?, {n}, {n,}, {n, m}), соответствие. шаблон не жадный. Нежадный режим соответствует как можно меньшей части искомой строки, тогда как жадный режим по умолчанию соответствует как можно большей части искомой строки. Например, для строки «oooo» «o+?» будет соответствовать одному «o», а «o+» — всем «o».
d соответствует цифровому символу, эквивалентному [0–9].
D соответствует нечисловому символу, эквивалентному [^0-9].
w , что эквивалентно "[A-Za-z0-9_]"
W соответствует любому символу, не являющемуся словом, эквивалентному «[^A-Za-z0-9]».
s соответствует любому символу пробела, включая пробелы, табуляцию, подачу формы и т. д. Эквивалентно [fnrtv]
S соответствует любому символу без пробелов, эквивалентному [^frntv].
b соответствует границе слова, которая представляет собой позицию между словом и пробелом.
B соответствует границам, не являющимся словами.
(шаблон) соответствует шаблону и получает совпадение. Полученные совпадения можно получить из созданной коллекции Matches, используя коллекцию SubMatches в VBScript или свойства $0…$9 в JScript.
(?:pattern) соответствует шаблону, но не получает соответствующего результата. Это означает, что это совпадение без получения и не сохраняется для дальнейшего использования. Это полезно при использовании символа «или» (|) для объединения частей шаблона. Например, «industr(?:y|ies)» — более короткое выражение, чем «industry|industries».
(?=шаблон) прямой поиск, сопоставляющий строку поиска в начале любого шаблона соответствия строки. Это совпадение без выборки, то есть совпадение не требуется извлекать для дальнейшего использования. Например, «Windows (?=95|98|NT|2000)» соответствует «Windows» в «Windows 2000», но не соответствует «Windows» в «Windows 3.1». Предварительная выборка не использует символы, то есть после совпадения поиск следующего совпадения начинается сразу после последнего совпадения, а не после символа, содержащего предварительную выборку.
(?!шаблон) Отрицательный просмотр вперед соответствует строке поиска в начале любой строки, которая не соответствует шаблону. Отрицательный просмотр вперед соответствует строке поиска в любой точке, где строка не соответствует шаблону. Это совпадение без выборки, то есть совпадение не требуется извлекать для дальнейшего использования. Например, «Windows (?!95|98|NT|2000)» может соответствовать «Windows» в «Windows 3.1», но не «Windows» в «Windows 2000». Предварительная проверка не расходует символы, то есть после того, как произошло совпадение, поиск следующего совпадения начинается сразу после последнего совпадения, вместо того, чтобы начинать
сопоставление 2-4 китайских иероглифов
программных кодов
после символов, содержащих предварительную проверку.
/^[u4e00-u9fa5]{2,4}$/г;
программным кодам
длиной от 6 до 18 символов (буквы, цифры, подчеркивания).
/^w{6,18}$/;
программный код
/^[A-Za-z0-9_]$/;
Сопоставить
программный код
HTML-тега
/<[^>]*>|</[^>]*>/gm;
программный код
/</?[^>]+>/gm;
программный код
левого и правого пробелов
/(^s*)|(s*$)/g;
Порядок приоритета (от высокого к меньшему)
escape-символ
(),(?:),(?=),[] круглые и квадратные скобки
* , + , ? , {n} , {n,} , квалификатор {n,m}
^ , [vapour:content]nbsp; позиция и порядок
Операция «или»
соответствует двум последовательным одинаковым словным
кодам программ,
разделенным пробелами |
/b([az]+) 1b/gim ;
В этом примере подвыражением является каждый член в круглых скобках.
Захваченное выражение состоит из одного или нескольких буквенных символов, как указано в '[az]+'.
Вторая часть регулярного выражения — это ссылка на ранее зафиксированное частичное совпадение, которое является вторым вхождением слова, совпадающего с добавленным выражением.
'1' используется для указания первого подсоответствия. Метасимволы границы слова гарантируют, что будут обнаружены только отдельные слова.
Если бы этого не было сделано, такие фразы, как «выдается» или «это есть» были бы неправильно распознаны выражением.
программный код
var ss = "Вырастет ли стоимость бензина?. Вырастет ли стоимость бензина?";
вар ре = /b([az]+) 1b/gim;
var rv = ss.replace(re,"$1");
document.write(rv) //Вывод «Растет ли стоимость бензина?. Растет ли стоимость бензина?».
программный код
/bCha/
соответствует первым трем символам слова «Глава», поскольку они появляются после границы слова.
программный код
/terb/
соответствует «ter» в слове «Chapter», поскольку оно находится перед границей слова.
программный код
/Bapt/
соответствует «apt», потому что он находится в середине «Главы», но не соответствует «apt» в «aptitude», потому что он находится после границы слова.
*/
Сопоставить
код программы
с URL-адресом
/(w+)://([^/:]+)(:d*)?([^#]*)/
Разложим следующий URI на протоколы (ftp, http и т. д.), имя домена адрес и страница/путь:
http://msdn.microsoft.com:80/scripting/default.htm
Первое дополнительное подвыражение используется для записи протокольной части веб-адреса. Это подвыражение соответствует любому слову, которому предшествует двоеточие и две косые черты. Второе дополнительное подвыражение фиксирует адрес домена адреса. Это подвыражение соответствует любой последовательности символов, не содержащей символов «^», «/» или «:». Третье дополнительное подвыражение фиксирует номер порта веб-сайта, если он указан. Это подвыражение соответствует нулю или более числам, за которыми следует двоеточие. Наконец, четвертое дополнительное подвыражение фиксирует информацию о пути и/или странице, указанную веб-адресом. Это подвыражение соответствует одному или нескольким символам, кроме «#» и пробелов.
Когда к URI, показанному выше, применяется регулярное выражение, подсовпадения включают следующее:
RegExp.$1 содержит «http».
RegExp.$2 содержит «msdn.microsoft.com».
RegExp.$3 содержит «:80».
RegExp.$4.
Метод1
, которыйсодержит регулярное выражение «/scripting/default.htm»
.
Метод теставозвращает логическое значение, которое указывает, существует ли шаблон в искомой строке.
rgExp.test(str)
Свойства глобального объекта RegExp не изменяются. метод тестирования,
пример 1
http://www.knowsky.com/
программный код
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
вар флаг = reg.test (url);
флаг // возвращаем истину
RegExp.$1 //Вернем "http"
RegExp.$2 //Возвращаем «msdn.microsoft.com»
RegExp.$3 //Возврат ":80"
$egExp.$4 //Возврат "/scripting/default.html"
Ни методы поиска, ни методы тестирования не могут обновлять глобальный объект RegExp, поэтому RegExp.input, RegExp.index и RegExp.lastIndex возвращают неопределенное значение
2. Метод match
использует шаблон регулярного выражения для поиска в строке и возвращает результат, содержащий поиск как массив.
программный код
stringObj.match(rgExp)
Если метод match не находит совпадения, он возвращает значение null. Если совпадение найдено, возвращается массив, и свойства глобального объекта RegExp обновляются, чтобы отразить совпадение.
Массив, возвращаемый методом match, имеет три атрибута: input, index и LastIndex.
Свойство Input содержит всю искомую строку.
Свойство Index содержит позицию соответствующей подстроки во всей строке поиска.
Свойство LastIndex содержит позицию рядом с последним символом в последнем совпадении.
Если глобальный флаг (g) не установлен, элемент 0 массива содержит все совпадение, а элементы от 1 до n содержат все подсовпадения, которые произошли в совпадении.
Это эквивалентно методу exec без установки глобального флага. Если установлен глобальный флаг, элементы от 0 до n содержат все совпадения с
примером 1 (глобальный флаг не установлен).
программный код
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
вар myArray=url.match(reg);
RegExp.$1 //Вернем "http"
RegExp.$2 //Вернем «msdn.microsoft.com»
RegExp.$3 //Возврат ":80"
$egExp.$4 //Возврат "/scripting/default.html"
myArray //Вернем myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Вернем «http://msdn.microsoft.com:80/scripting/default.html»
myArray.index //Вернем 0
myArray.lastIndex //Вернем 51
example2 (установлен глобальный флаг)
программный код
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/g;
вар myArray=url.match(reg);
RegExp.$1 //Вернем "http"
RegExp.$2 //Возвращаем «msdn.microsoft.com»
RegExp.$3 //Возврат ":80"
$egExp.$4 //Возврат "/scripting/default.html"
myArray //Вернем myArray=" http://msdn.microsoft.com:80/scripting/default.html "
myArray.input //Вернем «http://msdn.microsoft.com:80/scripting/default.html»
myArray.index //Вернем 0
myArray.lastIndex //Вернем 51
Обратите внимание на разницу после установки глобального флага.
Если глобальный флаг (g) не установлен, элемент 0 массива содержит все совпадение, а элементы от 1 до n содержат все подсовпадения, которые произошли в совпадении.
Это эквивалентно методу exec без установки глобального флага. Если установлен глобальный флаг, элементы от 0 до n содержат все совпадения с
3. Метод exex
выполняет поиск по строке, используя шаблон регулярного выражения, и возвращает массив, содержащий результаты поиска.
программный код
rgExp.exec(строка)
Если метод exec не находит совпадения, он возвращает значение null.
Если совпадение найдено, метод exec возвращает массив, а свойства глобального объекта RegExp обновляются, чтобы отразить совпадение.
Элемент 0 массива содержит полное совпадение, а элементы от 1 до n содержат все подсовпадения, встречающиеся в совпадении.
Это эквивалентно методу сопоставления без установки глобального флага (g).
Если для регулярного выражения установлен глобальный флаг, exec начинает искать позицию, указанную значением LastIndex.
Если глобальный флаг не установлен, exec игнорирует значение LastIndex и выполняет поиск с начала строки.
Массив, возвращаемый методом exec, имеет три атрибута: input, index и LastIndex.
Свойство Input содержит всю искомую строку.
Атрибут Index содержит позицию совпавшей подстроки во всей искомой строке.
Свойство LastIndex содержит следующую позицию последнего символа в совпадении.
example1 (глобальный флаг не установлен)
программный код
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
вар myArray=reg.exec(url);
RegExp.$1 //Вернем "http"
RegExp.$2 //Вернем «msdn.microsoft.com»
RegExp.$3 //Возврат ":80"
$egExp.$4 //Возврат "/scripting/default.html"
myArray //Вернем myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Вернем «http://msdn.microsoft.com:80/scripting/default.html»
myArray.index //Вернем 0
myArray.lastIndex //Вернем 51
Если глобальный флаг (g) не установлен, метод сопоставления аналогичен методу exec.
example2 (установить глобальный флаг)
программный код
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
вар myArray=reg.exec(url);
RegExp.$1 //Вернем "http"
RegExp.$2 //Возвращаем «msdn.microsoft.com»
RegExp.$3 //Возврат ":80"
$egExp.$4 //Возврат "/scripting/default.html"
myArray //Вернем myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Вернем «http://msdn.microsoft.com:80/scripting/default.html»
myArray.index //Вернем 0
myArray.lastIndex //Вернем 51
4. Метод search
возвращает позицию первой подстроки, соответствующей содержимому поиска по регулярному выражению.
программный код
stringOjb.search(rgExp)
Метод поиска указывает, существует ли соответствующее совпадение.
Если совпадение найдено, метод поиска возвращает целочисленное значение, указывающее смещение совпадения от начала строки.
Если совпадение не найдено, возвращается -1.
пример1
программный код
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
вар флаг = url.search (reg);
флаг // возвращаем 0
RegExp.$1 //Вернем "http"
RegExp.$2 //Вернем «msdn.microsoft.com»
RegExp.$3 //Возврат ":80"
$egExp.$4 //Возврат "/scripting/default.html"
Ни методы поиска, ни методы тестирования не могут обновить глобальный объект RegExp, поэтому RegExp.input, RegExp.index и RegExp.lastIndex возвращают неопределенное значение.
5. Метод replace
возвращает копию строки после замены текста на основе регулярного выражения и
может обновлять глобальный объект RegExp.