Как использовать регулярные выражения для извлечения информации из ссылок mailto - PullRequest
1 голос
/ 14 февраля 2010

Я хочу написать регулярное выражение для следующего:

Pattern1:

электронная почта: abc@gmail.com

regex1 должен соответствовать всем строкам, которые начинаются с mailto:

Pattern2:

MAILTO: abc@gmail.com Заголовок = Индийский и тела = привет

regex2 должен извлечь строку запроса (строка после?)

Ответы [ 4 ]

4 голосов
/ 14 февраля 2010

Нет необходимости в регулярных выражениях.Просто сопоставьте любую строку, где первые семь символов являются «mailto:».

Если вы настаиваете на использовании регулярных выражений, выражение будет «mailto:. *».Если вы хотите оставить только то, что находится после «mailto:», это будет «mailto: (. *)»

1 голос
/ 14 февраля 2010

Regex действительно не нужно для этого. Для первого соответствия достаточно простого String.startsWith, и вы можете использовать класс URL для извлечения запроса.

String string = "mailto:abc@gmail.com?subject=Indian&body=hello";
if (string.startsWith("mailto:")) {
    try {
        URL url = new URL(string);
        String query = url.getQuery(); // Here is your query string.

    } catch (MalformedURLException e) {
        throw new AssertionError("This should not happen: " + e);
    }
}
1 голос
/ 14 февраля 2010

Для начала вы можете использовать String.startsWith (префикс String)

И вторая, возможно, обрезка строки для "?" затем используйте String.split ("& | ="); и у вас есть массив с [предмет, индиец, тело, привет]

http://java.sun.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)

0 голосов
/ 14 февраля 2010
  1. mailto:. + Или mailto: [^ \ s] +
  2. mailto:. +? \? (. +) Или mailto: [^ \ s] +? \? [^ \ S] +
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...