Ruby 括号和正则表达式

Ruby 括号和正则表达式,ruby,regex,Ruby,Regex,我目前正在做一个练习,在这个练习中,我需要定位所有正在发生的(),[],{},无论是分组的还是单个的,但我无法找出正则表达式。我不需要中间的文本。我已经用以下方法从字符串中筛选出它们: string_updated = string.gsub(/([a-zA-Z]|\d+)|\s+/, "") 比如说。在此字符串中: "I can't ( find the } regular ] expression to ) grab these[." 我想要的是:(,},],),[你应该可以用([\(

我目前正在做一个练习,在这个练习中,我需要定位所有正在发生的(),[],{},无论是分组的还是单个的,但我无法找出正则表达式。我不需要中间的文本。我已经用以下方法从字符串中筛选出它们:

string_updated = string.gsub(/([a-zA-Z]|\d+)|\s+/, "") 
比如说。在此字符串中:

"I can't ( find the } regular ] expression to ) grab these[."

我想要的是:
(,},],),[

你应该可以用
([\(\[\{]).([\)\]\}])来做这件事。


下面是一个工作示例:

您应该使用以下正则表达式:

([][)(}{])

说明:

(            # Start capturing group
  [          # Match any of these characters
    ][)(}{   # Desired chars
  ]          # End of char group
)            # End of capturing group

关于:

a = "I can't ( find the } regular ] expression to ) grab these[."
brackets = %w|( ) [ ] { }|
puts a.scan(Regexp.union(brackets)).join(', ') #=> (, }, ], ), [

问题还不清楚……
[()\[\]{}]+
是您所需要的一切。没有
我无法(找到}正则表达式)获取这些[。我只想:(,},],[。
为了避免逃逸噪音,在类内部,只需要逃逸
[
。这是一个技巧,
]
允许作为类中的第一个字符不替换,但是,即使是在扩展模式下也会排除类,在您发布它时,它现在是两个类。也许Ruby不同。我不知道。无论如何,这是压缩的
[#匹配这些字符中的任何一个\n][(}{#所需的字符\n]
现在是两个类。@sln我不知道ruby在新版本中的用法。但是正则表达式在1.8.7v中工作得很好:您显示的带注释的扩展正则表达式与顶部列出的正则表达式不一样。@sln我想您弄错了。这只是逐行解释,而不是用作主模式。但是我认为我们不能在另一条路?!