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

http://www.regular-expressions.info/conditional.html(?(?=condition)(then1|then2|then3)|(else1|else2|else3))から見つけましたが、この場合に機能させる方法がわかりません。これが私の正規表現です: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 に答える