区分字符串与flex

时间:2010-04-05 14:15:23

标签: java regex lex jflex

我需要根据像= and !=这样的运算符对某些字符串进行标记。我成功使用正则表达式,直到字符串有!=运算符。在我的例子中,字符串被分成两部分,这是预期的,但!标记在左侧,即使它是给定运算符的一部分。因此,我认为正则表达式不适合它,我想从lex中受益。由于我对lex没有足够的知识和经验,我不确定它是否适合我的工作。基本上,我试图用其他数据的实际值替换运算符的右侧。你认为这对我的案子有帮助吗?

感谢。

1 个答案:

答案 0 :(得分:1)

你应该使用lex吗?这取决于你的语言有多复杂。这是一个非常强大的工具,值得理解(尤其是使用yacc,或者使用Java,您可以使用antlrjavacc)。

public String[] split(String regex)确实采用正则表达式,而不仅仅是字符串。您可以使用正则表达式“!?=”,这意味着零或一!后跟=。但使用split的问题在于它不会告诉你实际的分隔符是什么。

由于我们对您的应用程序的信息很少,我很想使用正则表达式。这里有很多专家在stackoverflow上提供帮助。一个很好的起点是Java regex tutorial

(感谢Falle1234提起错误 - 现已更正。)