2010-04-05 87 views
1

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

谢谢。

回答

1

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

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

由于我们有关于你的应用程序的信息很少,所以我很想用正则表达式。这里有很多专家在stackoverflow上提供帮助。 Java regex tutorial是一个很好的开始。

(感谢Falle1234拾取我的错误 - 现在修正) “!=”

+1

正则表达式应该是代替 “+ =!”。 ?是“零或一个” - 指示符而不是+,表示一个或多个。 – Falle1234 2010-05-16 22:21:35