Encontrei um pequeno problema ontem. Precisava processar alguns usuários em lotes. O formato dos usuários enviados da recepção era o seguinte. Queria extrair o conteúdo entre colchetes.
Professor 10(0010)
Professor 11(0011)
Professor 9(009)
Professor 12(0012)
Professor 13(0013)
Professor 14(0014)
Originalmente, eu queria usar String.split() e substring() do Java para fazer isso, mas era problemático processá-lo várias vezes, então usei expressões regulares. Embora eu quase tenha esquecido a sintaxe, acho mais conveniente usar asserções (o segredo é esperar que os resultados não tenham parênteses). Abra o RegexBuddy e experimente, e é fácil de fazer:
A seguir está o código de implementação java:
Finalmente, aqui estão as asserções de largura zero usadas:
afirmação ampla | (?=exp) | Combine a posição antes de exp |
---|---|---|
(?<=exp) | Combine a posição após exp | |
(?!exp) | Corresponde a uma posição que não é seguida por exp | |
(?<!exp) | Combine a posição que não é precedida por exp |