4

我正在尝试使用 REGEX 来做一个if-then-elsif-then-else-then-end 例子:

s = "foobar123"
if end of s is 3
  then return "foo"
elsif end of s is 2 
  then return "bar"
else
  then return "foobar"
end

(?(?=condition)(then1|then2|then3)|(else1|else2|else3))http://www.regular-expressions.info/conditional.html找到但不知道如何使它在这种情况下工作。这是我的正则表达式if-then-else-then-end

/(?=.*[3])(foo)|(bar)/
  • 如果字符串以 3 结尾
  • 然后返回 foo
  • 否则返回栏

我认为可以在父阶段的 else 中编写另一个 if-else 但不能:(

4

1 回答 1

7

你在使用交替的正确轨道上,但你不需要前瞻。

/.*(foo).*3$|.*(bar).*2$|.*(foobar).*/

你将不得不返回:

$1$2$3

我有所有的.*s 因为我假设你正在使用foobar作为占位符。

于 2013-01-10T17:25:21.230 回答