Jul*_*ide -1 ruby orm ruby-on-rails
我有一个来自地图的变量,我试图在方括号之间得到一个特定的部分
(例如, "dmfkdmfk [IWANTTHISPART] mlkm")
但它不像我那样工作.我正在尝试这里使用的相同方式.
原始代码:
query_values = activities.map do |activity|
'(' +
"#{activity['note']}"
+')'
end
Run Code Online (Sandbox Code Playgroud)
我试过了:
query_values = activities.map do |activity|
'(' +
"#{activity['note'].[/#{"["}(.*?)#{"]"}/m, 1]}"
+')'
end
Run Code Online (Sandbox Code Playgroud)
错误日志:
syntax error, unexpected '[', expecting '('
'(' + "#{activity['note'].[/#{"["}(.*?)#{"]"}/m, 1]},""'" +')'
^
quase.rb:40: syntax error, unexpected keyword_end, expecting tSTRING_DEND
Run Code Online (Sandbox Code Playgroud)
我该怎么办?非常感谢.
str = "(dmfkdmfk[IWANTTHISPART]mlkm)"
Run Code Online (Sandbox Code Playgroud)
#1使用带有外观的正则表达式
R0 = /
(?<=\[) # match a left bracket in a positive lookbehind
.+ # match one or more of any character
(?=\]) # match a right bracket in a positive lookahead
/x # free-spacing regex definition mode
Run Code Online (Sandbox Code Playgroud)
(同 R0 = /(?<=\[).+(?=\])/)
str[R0] #=> "IWANTTHISPART"
Run Code Online (Sandbox Code Playgroud)
#2在左侧或右侧括号上拆分字符串
R1 = /
[\[\]] # match a left or right bracket
/x
Run Code Online (Sandbox Code Playgroud)
(同R1 = /[\[\]]/)
str.split(R1)[1]
#=> "IWANTTHISPART"
Run Code Online (Sandbox Code Playgroud)
#3没有正则表达式
str[str.index('[')+1..str.index(']')-1]
#=> "IWANTTHISPART"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |