some image

Tag Regular Expression

Extraer contenido con expresiones regulares

Etiquetas: , Blog, Programación No comments

Bien, en algún momento todos hemos escuchado sobre las expresiones regulares y la magia que hacen para verificar si se cumple la expresión y así mismo realizar validaciones. Por otro lado, las expresiones regulares nos permiten también extraer contenido de esas gigantescas cadenas de texto, ayudándonos a simplificar la codificación y reducir unas cuantas lineas de código.

 

Sé que este es un ejemplo sencillo, pero muy útil para todos aquellos que en algún momento buscan la forma de extraer el contenido de un texto utilizando expresiones regulares :).

 

1. Código fuente

 

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ContentExtractorRegularExpression {
    
    private final String REGULAR_EXPRESION_VOWELS = "[aeiouAEIOU]";
    private final String REGULAR_EXPRESION_NUMBERS = "\\d";
    private final String REGULAR_EXPRESION_P_TAG_HTML = "

(.+?)

"; private final String REGULAR_EXPRESION_NOT_EXISTS = "[y]"; /** * Extract the vowels in the text * * @param text * @return */ public String getVowels(String text){ StringBuilder result = new StringBuilder(); Pattern pattern = Pattern.compile(REGULAR_EXPRESION_VOWELS); Matcher matcher = pattern.matcher(text); while(matcher.find()){ result.append(matcher.group()).append(","); } return (!result.toString().isEmpty()) ? result.substring(0,result.toString().length() - 1) : "Not exists content with the regular expression " + REGULAR_EXPRESION_VOWELS; } /** * Extract the numbers in the text * * @param text * @return */ public String getNumbers(String text){ StringBuilder result = new StringBuilder(); Pattern pattern = Pattern.compile(REGULAR_EXPRESION_NUMBERS); Matcher matcher = pattern.matcher(text); while(matcher.find()){ result.append(matcher.group()).append(","); } return (!result.toString().isEmpty()) ? result.substring(0,result.toString().length() - 1) : "Not exists content with the regular expression " + REGULAR_EXPRESION_NUMBERS; } /** * Extract the elements which are a tag expression element * @param text * @return */ public String getTagElements(String text){ StringBuilder result = new StringBuilder(); Pattern pattern = Pattern.compile(REGULAR_EXPRESION_P_TAG_HTML); Matcher matcher = pattern.matcher(text); while(matcher.find()){ result.append(matcher.group(1)).append(","); } return (!result.toString().isEmpty()) ? result.substring(0,result.toString().length() - 1) : "Not exists content with the regular expression " + REGULAR_EXPRESION_P_TAG_HTML; } /** * This method should return the Not exist content with the regular expression * * @param text * @return */ public String getNotExistRegularExpression(String text){ StringBuilder result = new StringBuilder(); Pattern pattern = Pattern.compile(REGULAR_EXPRESION_NOT_EXISTS); Matcher matcher = pattern.matcher(text); while(matcher.find()){ result.append(matcher.group()).append(","); } return (!result.toString().isEmpty()) ? result.substring(0,result.toString().length() - 1) : "Not exists content with the regular expression " + REGULAR_EXPRESION_NOT_EXISTS; } public static void main(String[] args) { String text = "Hace 1 millon de años en la tierra existia una raza " + "de seres extraordinarios con muchos poderes, solo 4 fantasticos " + "tenian la capacidad de dominar todos los elementos. " + "

Cocoman

,

RockMan

, entre otros."; ContentExtractorRegularExpression example = new ContentExtractorRegularExpression(); System.out.println("Text : " + text + "\n"); System.out.println(example.getVowels(text)); System.out.println(example.getNumbers(text)); System.out.println(example.getTagElements(text)); System.out.println(example.getNotExistRegularExpression(text)); } }

 

2. Salida

Text : Hace 1 millon de años en la tierra existia una raza de seres extraordinarios con muchos poderes, solo 4 fantasticos tenian la capacidad de dominar todos los elementos. 

Cocoman

,

RockMan

, entre otros. a,e,i,o,e,a,o,e,a,i,e,a,e,i,i,a,u,a,a,a,e,e,e,e,a,o,i,a,i,o,o,u,o,o,e,e,o,o,a,a,i,o,e,i,a,a,a,a,i,a,e,o,i,a,o,o,o,e,e,e,o,o,o,a,o,a,e,e,o,o 1,4 Cocoman,RockMan Not exists content with the regular expression [y]