我正在研究2个案例:
假设我有那些var:
a = "hello"
b = "hello-SP"
c = "not_hello"
Run Code Online (Sandbox Code Playgroud)
任何部分匹配
我想接受具有可变任何字符串a里面,所以b并c会匹配.
图案的比赛
我想匹配了字符串a内,其次'-',这样b会匹配,c没有.
我有问题,因为我总是使用语法/expression/来定义Regexp,那么如何动态定义Ruby上的RegExp?
您可以使用相同的语法在正则表达式中使用变量,因此:
reg1 = /#{a}/
Run Code Online (Sandbox Code Playgroud)
将匹配包含a变量值的任何内容(在创建表达式时!)和
reg2 = /#{a}-/
Run Code Online (Sandbox Code Playgroud)
会做同样的事情,加上一个连字符,所以hello-在你的例子中.
编辑:正如Wayne Conrad所指出的,如果a包含"任何在正则表达式中具有特殊含义的字符",则需要将它们转义.例:
a = ".com"
b = Regexp.new(Regexp.escape(a))
"blah.com" =~ b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2785 次 |
| 最近记录: |