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我想您弄错了。这只是逐行解释,而不是用作主模式。但是我认为我们不能在另一条路?!