是否可以连接两个正则表达式变量?

Swa*_*nil 8 ruby regex

是否可以在 Ruby 中连接两个正则表达式变量?

r1 = /my_str/
r2 = /my_str1/
r3 = r1+r2
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供任何建议吗?

Pis*_*tos 8

连接sources 并传递给Regexp.new

2.4.1 :009 > r1 = /a./
 => /a./ 
2.4.1 :010 > r2 = /b{3}/
 => /b{3}/ 
2.4.1 :011 > r3 = Regexp.new(r1.source + r2.source)
 => /a.b{3}/ 
2.4.1 :022 > "axbbb" =~ r3
 => 0 
2.4.1 :023 > "axbb" =~ r3
 => nil 
Run Code Online (Sandbox Code Playgroud)


ste*_*lag 5

正则表达式::联合

r1 = /my_str/
r2 = /my_str1/
r3 = Regexp.union(r1, r2)
Run Code Online (Sandbox Code Playgroud)

  • 我不相信这是 OP 想要的解决方案。`Regexp#union` 执行正则表达式“或”,即 /my_str|my_str1/。我认为 OP 想要 /my_strmy_str1/ 或 /my_str.*my_str1/。 (3认同)

Das*_*ath -1

如果你有两个正则表达式,你可以像这样连接它们:

var r1 = /my_str/;

var r2 = /my_str1/;

var r3 = new RegExp( r1.source + r2.source );

  • 那不是鲁比;) (3认同)