我想使用正则表达式来解析像这样的序列...
ifelseifelseififif
其他每个人都需要一个if而不是每个人都需要一个别的。我打算使用这个表达式
((if)*+(ifelse)*)*
但我不知道如何将其转换为我可以在java中使用的格式。有人能告诉我并为我分解吗?
答案 0 :(得分:2)
你可能想要:((if)*|(ifelse)*)*
。 |
表示“或”。
然而,目前还不清楚你希望用这个完成什么。你的意见似乎含糊不清。它可能是
if {
} else {
}
if {
} else {
}
if {
}
if {
}
if{
}
或者可能是
if {
} else {
if {
} else {
}
}
if {
}
if {
}
if {
}
或许多其他变体。
答案 1 :(得分:1)
在正则表达式逻辑中我们要匹配:
(if
如果
|
或
ifelse)
ifelse
*
该令牌,0次或更多次。
(if|ifelse)*
如果/ elseifs,则匹配0或更多。
如果您需要它从头到尾填充整个字符串,例如没有部分匹配,在它之前放^,在它之后放$:
^(if|ifelse)*$
请阅读http://www.regular-expressions.info/reference.html,了解正则表达式语法的介绍(例如,+
不是您认为的正则表达式),并使用http://www.regexpal.com快速测试您的正则表达式浏览器。