В этой статье описываются функции и использование регулярного просмотра объемного объема и обратных ссылок на Java. Поделитесь этим для вашей ссылки, следующим образом:
Вокруг вида
1. Окружение концепции
Оглядываясь вокруг, также известный как утверждение нулевой ширины, сокращенное утверждение.
Взгляд округа подчеркивает положение (спереди или сзади), и выражение вида округа должно быть сопоставлено, чтобы быть успешным.
Просмотр округа может рассматриваться как дополнительное условие суждения для виртуального дополнения к его местоположению и не потребляет регулярные соответствующие символы.
2. Оглядываясь вокруг основного выражения
(? = Выражение) Порядок положительный, и выражение может быть сопоставлено с правой стороны местоположения.
(?
(? <= Выражение) обратный порядок положительно оглядывается, указывая на то, что левая сторона позиции может соответствовать выражению
(? <! Выражение) обратный порядок отрицает окружающий вид, указывая на то, что левая сторона позиции не может соответствовать выражению
ПРИМЕЧАНИЕ. Правая сторона сопоставления порядка (=), а в обратном порядке объемного представления есть больше <, чем последовательный вид округа.
JavaScript только поддерживает последовательное просмотр объемного объема, но не поддерживает обратное просмотр объемного округа.
Несмотря на то, что в Java поддерживаются как последовательный вид объемного округа, так и вид обратного порядка окружения, вид окружающей среды обратного порядка поддерживает только выражения с определением длины. В обратном порядке обзор окружения поддерживают только квантификаторы? и не поддерживайте другие квантификаторы с неопределенной длиной.
3. Используйте примеры
3.1. Утверждение последовательности и осмотреть (? = Выражение)
3.1.1. Сопоставьте имя файла без суффикса с концом суффикса ".txt"
【.+(? =/. TXT)】
текст:
txtfile.txt
exefile.exe
inifile.ini
Результат соответствия: txtfile
3.1.2. Сопоставьте пароль (должен содержать буквы (нечувствительные к случаю), цифры, 6-16 цифр)
【^(? =.*? [A-za-z]) (? =.*?
(? =.*?
3.2. Отрицание последовательности взгляда на объемное представление (?! Выражение)
3.2.1. Совместите теги, кроме <a> </a>
【<(?!/? A/B) [^<]+?>】
Текст: <a> <a1> </a> zxiaofan <div> com </d> iv> cc
Матч -результат:
<A1>
<div>
</d>
3.2.2. Сопоставьте имя файла с суффиксом, который не является ".txt" в конце суффикса
【.+ (?!/. TXT)】 Ошибки выражения, потому что.+ Не имеет указанной позиции и является жадным совпадением. (SO.+ может напрямую соответствовать txtfile.txt)
【(.+) (?!/. TXT)/. [^.]+$】
текст:
txtfile.txt
exefile.exe
inifile.ini
Матч -результат:
exefile.exe
inifile.ini
3.3. Утверждение обратного порядка вокруг (? <= Выражение)
3.3.1. Сопоставьте контент между указанными тегами
【(? <= <Div>) [^<]+(? = </Div>)】
Текст: <div> zxiaofan.com </div>
Соответствующий результат: ZXIAOFAN.com
3.3.2. Получите значение указанного параметра
【(? <= Name =).+】
текст:
Имя = ZXIAOFAN
возраст = 20
Уровень = 6
Результат соответствия: ZXIAOFAN
3.4. Обратное порядок отрицания обзора окружающей среды (? <! Выражение)
3.4.1. Получите значение неспособных параметров
【^[^=#]+= (? <! Name =).+$】
текст:
Имя = ZXIAOFAN
возраст = 20
Уровень = 6
#sex = 1
Матч -результат:
возраст = 20
Уровень = 6
4. Комплексные примеры
4.1. Должен содержать буквы, числа и специальные символы
【^(? =.*? [A-za-z]) (? =.*?/D) (?!
Объяснение: ^(? =.*? [A-za-z]) Ограничение должно иметь буквы; (? =.*?/D) предел должен иметь числа; (?! [a-za-z/d]+$) лимит не может быть всеми числами и буквами.
4.2. Сопоставьте основное доменное имя (сопоставьте доменное имя верхнего уровня)
【(? <= (? :: /// W {0,50}/.)?) (?
текст:
vip.zxiaofan.com.cn
http://zxiaofan.com/123
www.zxiaofan.org.cn
Матч -результат:
zxiaofan.com.cn
zxiaofan.com
zxiaofan.org.cn
ПРИМЕЧАНИЕ: [? (Это не повлияет на результат после удаления)
Специальное доменное имя: Wanwang www.net.cn
4.3. Сопоставьте 5 последовательных номеров мобильных телефонов
【1 [34578]/d {3} (/d) (?!/1 {1}) (/d)/2 {4}】
текст:
18328501111
183285111111
183285551111
183281111111
Матч -результат:
183285111111
Примечание1:/1 соответствует первому набору содержимого
Примечание2: (?!/1 {1}) фильтр 6 последовательных чисел
Обратные ссылки
1. Концепция обратной ссылки
Группа захвата: разделите на несколько групп в соответствии с () подэкспрессией; Каждая пара () появляется группа захвата; Двигатель будет читать группу захвата, а правило нумерации - левый кронштейн (порядок возникновения слева направо, начиная с 1.
Захват группы именования:
(?
(?: Exp) Match Exp, не захватывает соответствующий текст в автоматически именованную группу и не назначает номер группы этой группе.
Обратная ссылка:
/1 означает первую группу (ABC); /2 означает вторую группу;
/K <Word>: относится к группе с указанным именем.
2. Используйте примеры
2.1. Сопоставьте имя файла с тем же началом и конец
【([Az] {3}) [az]+/./1 {1}】
текст:
txtfile.txt
exefile.txt
fileini.ini
Матч -результат:
txtfile.txt
ПРИМЕЧАНИЕ.
PS: Вот два очень удобных инструмента регулярного выражения для вашей ссылки:
JavaScript регулярное выражение онлайн -тестирование:
http://tools.vevb.com/regex/javascript
Инструмент онлайн -генерации регулярного выражения:
http://tools.vevb.com/regex/create_reg
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть эти темы: «Навыки регулярного выражения Java», «Учебное пособие по структуре данных Java и учебник по алгоритму», «Навыки навыки операции Java DOM Node», «Сводка навыков операции Java Cacch».
Я надеюсь, что эта статья будет полезна для всех Java Programming.