1. Регулярные выражения в струнах
Используйте регулярные выражения для поиска, извлечения, сегмента, замены и других операций на строках. В классе строки представлены следующие специальные методы:
Boolean Matches (String Regex): определяет, соответствует ли строка указанное регулярное выражение.
String rylaceall (string regex, замена строки): замените все подстройки, соответствующие повторному выражению в этой строке с заменой.
String [] split (recex string regex): используйте Regex в качестве разделителя для разделения строки на несколько подстроков.
Все вышеперечисленные специальные методы основаны на регулярных выражениях, предоставляемых Java.
2. Создайте регулярные выражения
X: символ X (X может представлять любой юридический характер);
/0mnn: символ, представленный восьмим номером Omnn;
/xhh: персонаж, представленный шестнадцатеричным 0xhh;
/uhhhh: символ Unicode, представленный шестнадцатеричным 0xhhhh;
/T: Tab ('/U0009');
/n: New Line (Line Newline) символ ('/u000a');
/r: возвратный символ перевозки ('/u000d');
/f: Break Page ('/u000c');
/a: тревога (колокол) символ ('/u0007');
/E: Escape Partice ('/u001b');
/cx: контроллер, соответствующий x. Например, /cm соответствует Ctrl-m. Значение x должно быть одним из ~ z или a ~ z;
3. Специальные персонажи в регулярных выражениях
$: Сопоставьте конец линии. Чтобы соответствовать самому символу $, используйте /$;
^: Сопоставьте начало линии. Чтобы соответствовать самому символу, используйте / ^;
(): Отметьте начальные и конечные позиции подэкспрессии. Чтобы соответствовать этим символам, использовать /(и /);
[]: Используется для определения начальных и конечных позиций выражений кронштейнов. Чтобы соответствовать этим символам, используйте /[и /];
{}: Используется для обозначения частоты предыдущей подэкспрессии. Чтобы соответствовать этим символам, используйте /{и /};
*: Указывает, что предыдущая подэкспрессия может происходить нулевой или более раз. Чтобы соответствовать самому символу *, используйте / *;
+: Указывает, что предыдущая субэкспрессия может происходить один или более раз. Чтобы соответствовать самому символу +, используйте / +;
?: Указывает, что предыдущая субэкспрессия может произойти нулевой или один раз. Чтобы соответствовать самому персонажу, используйте /?;
.: Сопоставьте любой символ модуля, кроме разрыва линии/n. Чтобы соответствовать, сам символ, используйте /.;
/: Используется, чтобы избежать следующего символа или указать восьми или шестнадцатеричные символы. Соответствовать /символ, используйте //;
|: Укажите любой из двух элементов. Чтобы соответствовать самому символу, используйте /|;
4. Предопределенные символы
.: Может соответствовать любому персонажу;
/D: сопоставить все числа от 0 ~ 9;
/D: совпадать с не номерами;
/s: Сопоставление всех символов пробелов, включая пробелы, вкладки, возврат перевозки, разрывы страниц, разрывы строк и т. Д.;
/S: совпадать со всеми персонажами, не относящимися к бегству;
/w: Сопоставьте все символы слов, включая все числа от 0 ~ 9, 26 английских букв и подчеркивания (_);
/W: сопоставить всех не словных персонажей;
5. Сопоставленные граничные символы
^: Начало линии
$: Конец линии
/b: границы слов
/B: не слова границы
/A: начало ввода
/G: конец предыдущего матча
/Z: конец ввода, только для последнего конечного символа
/Z: конец ввода
6. Символы, представляющие количество совпадений
На следующем рисунке показаны символы, представляющие количество совпадений, которые используются для определения количества раз, когда символ появляется рядом слева от символа:
(1) Предположим, мы хотим искать номер социального страхования США в текстовом файле. Формат этого числа 999-99-9999. Регулярное выражение, используемое для соответствия, показано на рисунке 1. В регулярных выражениях дефис («-») имеет особое значение, которое представляет диапазон, такой как от 0 до 9. Следовательно, при сопоставлении дефиса в номере социального страхования ему должен предшествовать экологичный персонаж »/».
(2) Предположим, при поиске вы надеетесь, что дефис может появиться или нет, то есть 999-99-9999 и 9999999999999, оба находятся в правильном формате. В настоящее время вы можете добавить "?" Количество квалификационного символа после дефиса, как показано на рисунке:
(3) Давайте посмотрим на другой пример ниже. Один формат для американских номерных знаков - четыре номера плюс две буквы. Его регулярному выражению предшествует номер «[0-9] {4}» и часть буквы «[az] {2}». На следующем рисунке показано полное регулярное выражение.
7. Некоторые примеры 1
Функция заменить (content) {var reg = '// [(// w+) //]', pattern = new Regexp (reg, 'g'); return content.replace (шаблон, '<img src = "img/$ 1.png">');} // или функция заменить (content) {return content.replace (// [(/w+) // g, '<img src = "img/$ 1.png">');}Пример 2
// нулевая ширина заглянуть за альтернативным решением // (? <= ...) и (? <! ...) // Метод 1: Обратите внимание на строку, поиск с помощью Lookahead, замените его, а затем перемотайте ее обратно, например: String.prototype.reverse = function () {return this.split (''). Обратный (). 'foo.bar | baz'.replace (/(? <=/.) b/,' c ') немедленно замените B на'. Перед ним с c'foo.bar | baz'.reverse (). Заменить (/b (? =/.)/g, 'c'). reverse () //foo.car|baz//method 2: не используйте утверждение нулевой ширины, судья самим // симулируйте 'foo.bar | baz'.replace (/(? впереди к c'foo.bar | baz'.replace (/(/.)? B/, function ($ 0, $ 1) {return $ 1? $ 1 + 'c': $ 0;}) //foo.car| baz//simulate 'foo.bar | baz'.replace (/(? '.bar | baz'.replace (/(/.)? B/, функция ($ 0, $ 1) {return $ 1? //'tttt'.replace(/(?<=t)t/g, 'x') Результатом должен быть 'txxx''tttt'.replace (/(t)? t/g, функция ($ 0, $ 1) {return $ 1? $ 1 +' x ': $ 0;}) // txtxПример 3
Использование $ & Symbol
function eScaperegexp (str) {return str.replace (/[abc]/g, "($ &)");} var str = 'a12b34c'; console.log (escaperegexp (str)); // (a) 12 (b) 34 (c)