RegEx для токенизации строки - PullRequest
2 голосов
/ 19 января 2010

Я пытаюсь создать регулярное выражение для токенизации строки. Пример строки будет.

John Mary, "Name=blah;Name=blahAgain" "Hand=1,2"

Я пытаюсь вернуться:

  • John
  • Mary
  • Имя = бла; Имя = blahAgain
  • Hand = 1,2

Ответы [ 5 ]

1 голос
/ 19 января 2010

Это было легко:

([^ ])+
1 голос
/ 19 января 2010

Для этого конкретного примера я бы сделал:

([^\s]*)\s+([^,\s]*)\s*,\s*"([^"]*)"\s+"([^"]*)"

update : изменен для разделения Мэри и Джона

0 голосов
/ 20 января 2010

Один из возможных способов: разделить на , с последующим space или на один из space или quotation mark:

"John Mary, \"Name=blah;Name=blahAgain\" \"Hand=1,2\"".split(",\\s|[\\s\"]")
0 голосов
/ 19 января 2010

Это работает для вашего примера:

(\w+) (\w+), \"([^"]+)" \"([^"]+)

У всех ваших струн одинаковый рисунок?

0 голосов
/ 19 января 2010

Поскольку вы используете Java, почему бы не использовать StringTokenizer?Например:

StringTokenizer st = new StringTokenizer("String to tokenize", " ");
while (st.hasMoreTokens())
{
   // get next token
   String someVariable = st.nextToken();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...