我想使用正则表达式来解析这样的序列......
ifelseifelseififif
每个 else 都需要 if 但不是每个 if 都需要 else。我打算使用这个表达式
((if)*+(ifelse)*)*
但我不知道如何将其转换为我可以在 java 中使用的格式。有人可以告诉我并为我分解吗?
你可能想要:((if)*|(ifelse)*)*
. 意思是“|
或”。
但是,目前尚不清楚您希望通过此实现什么。您的输入似乎模棱两可。它可能是
if {
} else {
}
if {
} else {
}
if {
}
if {
}
if{
}
或者它可能是
if {
} else {
if {
} else {
}
}
if {
}
if {
}
if {
}
或许多其他变体。
在正则表达式逻辑中,我们要匹配:
(if
if
|
OR
ifelse)
ifelse
*
那个记号,0次或多次。
(if|ifelse)*
这将匹配 0 个或多个 if/elseifs。
如果您需要它从头到尾填充整个字符串,例如没有部分匹配,请将 ^ 放在它之前和 $ 之后:
^(if|ifelse)*$
请阅读http://www.regular-expressions.info/reference.html以了解正则表达式语法的介绍(例如,+
不是您认为的正则表达式),并使用http://www.regexpal.com在浏览器中快速测试您的正则表达式。