Анализировать InputStream для нескольких шаблонов

Я разбираю InputStream для определенных шаблонов, чтобы извлечь из него значения, например, у меня было бы что-то вроде

foo

Я не Я не хочу использовать полноценный синтаксический анализатор html, поскольку меня не интересует структура документа, а только некоторые четко определенные фрагменты информации. (Важен только их порядок)
В настоящее время я использую очень простой подход, у меня есть объект для каждого шаблона, который содержит char [] открывающего и закрывающего 'тега' (в примере открытие будет , чтобы получить URL) и маркер позиции. Для каждого символа, прочитанного из InputStream, я перебираю все шаблоны и вызываю функцию match (char) , которая возвращает истину, когда шаблон открытия действительно совпадает, с этого момента я собираю следующие символы в StringBuilder до тех пор, пока теперь активный шаблон снова соответствует (). Затем я вызываю функцию с идентификатором шаблона и прочитанной строкой, чтобы обработать ее дальше.
While this works fine in most cases, I wanted to include regular expressions in the pattern, so I could also match something like

foo

At this point I was sure I would reinvent the wheel as this most certainly would have been done before, and I don't really want to write my own regex parser to begin with. However, I could not find anything that would do what I was looking for.
Unfortunately the Scanner class only matches one pattern, not a list of patterns, what alternatives could I use? It should not be heavy and work with Android.

5
задан ben 14 April 2011 в 18:03
поделиться