Técnicas de manipulación de expresiones regulares y cadenas

Dado que una cadena de entrada se puede especificar de la siguiente manera:

  • leer(xpath('...')) o
  • xpath('...') o
  • ...

Donde... solo contiene alguna expresión xpath, por ejemplo,/comment/text

Todo lo que realmente quiero es la expresión xpath; cuál sería una forma eficiente de extraer en general este valor dados los tres posibles patrones válidos que podrían especificarse.

Además, estoy implementando esto en Java.

preguntado el 12 de junio de 12 a las 17:06

No necesitas expresiones regulares para eso. beginWith() y substring() son suficientes. -

2 Respuestas

Aquí está el ejemplo básico, coincide con la parte xpath en ambos ejemplos de cadena:

import java.util.regex.*;

class Untitled {
  public static void main(String[] args) {
    String input = "read(xpath('...'))";
    String result = null;
    Pattern regex = Pattern.compile("xpath\\(\'(.*?)\'\\)");
    Matcher matcher = regex.matcher(input);

    if (matcher.find()) {
        result = matcher.group(1);
    }

    System.out.println(result);
  }
}

Respondido el 12 de junio de 12 a las 18:06

Te habría ayudado a publicar algo de código, pero puedes usar String Split. Por favor refiérase a http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#split%28java.lang.String%29

Si está seguro de tener xpath(''), entonces puede usar xpath(' como su expresión regular y quitar la cadena y recopilar los datos dentro de ella hasta que llegue a otro ' (apóstrofe).

Espero que esto te dé una idea.

Respondido el 12 de junio de 12 a las 18:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.