различая строку с гибким - PullRequest
       14

различая строку с гибким

1 голос
/ 05 апреля 2010

Мне нужно токенизировать некоторые строки, которые будут разбиты в соответствии с такими операторами, как = and !=. Я успешно использовал регулярные выражения, пока строка не имеет оператора !=. В моем случае строка была разделена на две части, что ожидается, но отметка ! находится на левой стороне, даже если она является частью данного оператора. Поэтому я считаю, что регулярное выражение не подходит для этого, и я хочу извлечь выгоду из lex. Поскольку у меня нет достаточных знаний и опыта с lex, я не уверен, подходит ли он моей работе или нет. По сути, я пытаюсь заменить правую часть операторов фактическими значениями из других данных. Как вы думаете, может ли это быть полезным для моего случая?

Спасибо.

1 Ответ

1 голос
/ 06 апреля 2010

Стоит ли использовать lex? Это зависит от сложности вашего языка. Это очень мощный инструмент, который стоит понять (особенно с yacc, или в Java вы можете использовать antlr или javacc ).

public String[] split(String regex) принимает регулярное выражение, а не просто строку. Вы можете использовать регулярное выражение "!? =", Что означает ноль или один !, за которым следует =. Но проблема с использованием split заключается в том, что он не скажет вам, каким был фактический разделитель.

Из-за того, что у нас мало информации о вашем приложении, я бы соблазнился использовать регулярные выражения. Здесь много экспертов по stackoverflow, чтобы помочь. Отличное место для начала - учебник по регулярным выражениям Java .

(Спасибо Falle1234 за обнаружение моей ошибки - теперь исправлено.)

...