(a< 1)或(b = 2)和(c> 3)的正则表达式

时间:2015-06-18 08:50:52

标签: regex

我的表达是(a<1) or (b=2) and (c>3)

我想提取变量名称(abc)并将其存储在名为var[]的数组中。

类似值(123)和运算符(orand)。我应该使用正则表达式,如果不是它会是什么?

2 个答案:

答案 0 :(得分:1)

不,你不应该。这更像是一个分层解析器问题。

你应该做的是a)找到能够为你提供所需内容的抽象解析树的东西,或者b)使用众多解析器构建器之一设计上面的东西 - 尝试阅读flex或bison。也许你也想看看antlr。

答案 1 :(得分:0)

我不知道你使用的语言是什么,而且你还没有给出很多比赛。一个基本的RegEx将是:

(?<=\()[^)>=<]*

将获得(

之后的字符)
(?<=\()[A-Za-z]*

将获得(

之后的字母

也许:

(?<=\()(.*?)(?:[=><])([^)\n])

可以更好地工作,这将捕获两个部分