繁体   English   中英

Rails - 从字符串中提取带有 [ 和 ] 的 substring

[英]Rails - extract substring with in [ and ] from string

这行得通。

"<name> <substring>"[/.*<([^>]*)/,1]
=> "substring"

但我想在[]中提取 substring 。

输入

string = "123 [asd]"

output

asd

任何人都可以帮助我吗?

你可以做:

"123 [asd]"[/\[(.*?)\]/, 1]

将返回

"asd"

你可以在这里测试它: https://rextester.com/YGZEA91495

以下是提取所需字符串的更多方法。

str = "123 [asd] 456"

#1

r = /
    (?<=\[)  # match '[' in a positive lookbehind
    [^\]]*   # match 1+ characters other than ']'
    (?=\])   # match ']' in a positive lookahead
    /x       # free-spacing regex definition mode

str[r]
  #=> "asd"

#2

r = /
    \[       # match '['
    [^\]]*   # match 1+ characters other than ']'
    \]       # match ']'
    /x       # free-spacing regex definition mode

str[r][1..-2]
  #=> "asd"

#3

r = /
    .*\[     # match 0+ characters other than a newline, then '['
    |        # or
    \].*     # match ']' then 0+ characters other than a newline
    /x       # free-spacing regex definition mode

str.gsub(r, '')
  #=> "asd"

#4

n = str.index('[')
  #=> 4
m = str.index(']', n+1)
  #=> 8
str[n+1..m-1]
  #=> "asd"

请参阅字符串#index

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM