Регулярное выражение — это формула, которая использует определенный шаблон для соответствия типу строки. Регулярное выражение состоит из обычных символов и метасимволов. Обычные символы включают в себя прописные и строчные буквы и цифры, а метасимволы имеют особое значение. Независимо от того, является ли это платформой .Net или платформой Java, значение, выражаемое регулярными выражениями, одинаково. Ниже мы в основном анализируем функции регулярных выражений Java. конкретных приложений. Надеюсь, статья будет вам полезна и предназначена только для справки.
С тех пор, как jdk1.4 запустил пакет java.util.regex, он предоставил нам хорошую платформу для приложений регулярных выражений Java, поскольку регулярные выражения Java представляют собой очень сложную систему.
// обратная косая черта
/t интервал('/u0009')
/n перевод строки ('/u000A')
/r Ввод('/u000D')
/d численно эквивалентен [0-9]
/D нечисло эквивалентно [^0-9]
/s пробел [/t/n/x0B/f/r]
/S символ без пробелов [^/t/n/x0B/f/r]
/w отдельные символы [a-zA-Z_0-9]
/W нераздельные символы [^a-zA-Z_0-9]
/f символ подачи формы
/e Побег
/b граница слова
/B Несловная граница
/G конец предыдущего матча
^ начинается с ограничения
^условие Java ограничено символами, начинающимися с Java
$ — конец ограничения
Условие java$ ограничено Java в качестве конечного символа.
. Условие ограничивает использование любого отдельного символа, кроме /n.
условие java.. ограничено любыми двумя символами после java, кроме новой строки
Добавить конкретные ограничения "[]"
условие [az] ограничено одним символом в диапазоне строчных букв от a до z
Условие [AZ] ограничено одним символом в верхнем регистре от A до Z.
Условие [a-zA-Z] ограничено одним символом в диапазоне строчных букв от a до z или прописных букв от A до Z.
[0-9] Условие ограничено одним символом в диапазоне строчных букв от 0 до 9.
[0-9a-z] Условие ограничено одним символом в диапазоне строчных букв от 0 до 9 или от a до z.
[0-9[az]] Условие ограничено одним символом (пересечением) в диапазоне строчных букв от 0 до 9 или от a до z.
Добавьте ^ к [], а затем добавьте еще одно ограничение «[^]»
Условие [^az] ограничено одним символом в диапазоне от не строчных букв от a до z
Условие [^AZ] ограничено одним символом в диапазоне от не заглавных букв от A до Z.
[^a-zA-Z] Условие ограничено одним символом в диапазоне от A до Z, не в нижнем регистре или в верхнем регистре от A до Z.
[^0-9] Условие ограничено одним символом в диапазоне от 0 до 9 не в нижнем регистре.
[^0-9a-z] Условие ограничено одним символом в диапазоне не строчных букв от 0 до 9 или от a до z.
[^0-9[az]] Условие ограничено одним символом (пересечением) в диапазоне не строчных букв от 0 до 9 или от a до z.
Если условием ограничения является появление определенного символа более 0 раз, вы можете использовать «*».
Дж* более 0Дж
.* 0 или более символов
J.* Более 0 символов между DJ и D.
Когда условие ограничения заключается в том, что определенный символ появляется более одного раза, вы можете использовать «+»
J+ 1 или более J
.+ 1 или более символов
J.+1 или более символов между DJ и D
Если ограничение состоит в том, что определенный символ появляется 0 или более раз, вы можете использовать «?»
JA? J или JA появляется?
Ограничить указанное количество последовательных вхождений символа "{a}".
Дж{2} ДжейДжей
Д{3} ДЖДЖ
Здесь больше символов, и "{a,}"
J{3,} JJJ,JJJJ,JJJJJ,???(J сосуществует более 3 раз)
Больше символов и меньше b символов "{a,b}"
J{3,5} JJJ или JJJJ или JJJJJ
Выберите один из двух "|"
J|AJ или A
Java|Привет, Java или Привет
"()" указывает тип комбинации <BR>Например, если я запрашиваю данные между <a href></a> в <a href="index.html/">index</a>, их можно записать как <a .*href=/".*/">(.+?)</a>
При использовании функции Pattern.compile вы можете добавлять параметры, которые управляют поведением сопоставления регулярных выражений Java:
Шаблон Pattern.compile (строковое регулярное выражение, флаг int)
Диапазон значений флага следующий:
Pattern.CANON_EQ Совпадение считается тогда и только тогда, когда «каноническое разложение» двух символов абсолютно одинаково. Например, после использования этого флага выражение «a/u030A» будет соответствовать «?». По умолчанию «каноническая эквивалентность» не учитывается.
Pattern.CASE_INSENSITIVE(?i)
По умолчанию сопоставление без учета регистра работает только с набором символов US-ASCII. Этот флаг обеспечивает сопоставление выражений независимо от регистра. Чтобы выполнить однозначное сопоставление символов Юникода, просто объедините UNICODE_CASE с этим флагом.
Шаблон.КОММЕНТАРИИ(?x)
В этом режиме символы пробела в регулярных выражениях Java будут игнорироваться при сопоставлении (Примечание переводчика: он не относится к «//s» в выражении, но относится к пробелам, табуляции, возвратам каретки и т. д. в выражении.) . Комментарии начинаются с # и продолжаются до конца строки. Линейный режим Unix можно включить с помощью встроенного флага.
Шаблон.DOTALL(?s)
В этом режиме выражение «.» может соответствовать любому символу, включая конец строки. По умолчанию выражение «.» не соответствует признаку конца строки.
Pattern.MULTILINE(?m)
В этом режиме «^» и «$» соответствуют началу и концу строки соответственно. Кроме того, «^» по-прежнему соответствует началу строки, а «$» также соответствует концу строки. По умолчанию эти два выражения соответствуют только началу и концу строки.
Шаблон.UNICODE_CASE(?u)
В этом режиме, если вы также включите флаг CASE_INSENSITIVE, символы Юникода будут соответствовать регистру без учета регистра. По умолчанию сопоставление без учета регистра работает только с набором символов US-ASCII.
Шаблон.UNIX_LINES(?d)
В этом режиме только '/n' считается разрывом строки и сопоставляется с '.', '^' и '$'. Оставляя в стороне расплывчатые концепции, вот несколько простых случаев регулярного использования Java:
◆Например, если строка содержит проверку