Вчера я столкнулся с небольшой проблемой. Мне нужно было обработать некоторых пользователей в пакетном режиме. Формат пользователей, отправленных со стойки регистрации, был следующим. Я хотел извлечь содержимое между скобками (без скобок).
Учитель 10(0010)
Учитель 11(0011)
Учитель 9(009)
Учитель 12(0012)
Учитель 13(0013)
Учитель 14(0014)
Изначально я хотел использовать для этого Java-функции String.split() и substring(), но обрабатывать их несколько раз было затруднительно, поэтому я использовал регулярные выражения. Хотя я почти забыл синтаксис, я думаю, что удобнее использовать утверждения (ключ в том, чтобы надеяться, что результаты не будут иметь скобок). Откройте RegexBuddy и попробуйте, это легко сделать:
Ниже приведен код реализации Java:
Наконец, вот используемые утверждения нулевой ширины:
широкое утверждение | (?=эксп) | Сопоставьте позицию перед exp |
---|---|---|
(?<=эксп) | Сопоставьте позицию после exp | |
(?!эксп) | Соответствует позиции, за которой не следует exp | |
(?<!эксп) | Соответствует позиции, которой не предшествует exp |