【发布时间】:2015-03-19 12:10:12
【问题描述】:
我有这个文本块定义为 new_text 波纹管,我有一个贯穿文本的 gsub 块,应该替换这个位
@[James Andrés Trento D.](content:25)
与
@James
但是,由于它们是名称中的 é,因此 \w 与该词不匹配。我试过使用
[:alpha:]
没有任何运气。有谁知道如何让我的正则表达式匹配重音符号?
new_text = "I have a video of @[James Andrés Trento D](content:25) dancing, but too big! May 5 - 9."
new_text.gsub! /@\[(?<name>[\w\s\-\']+)\]\(content:(?<userid>\d+)\)/ do
m = $~
name, id = m[:name], m[:userid]
"@#{name.split(' ').first}"
end
puts new_text
【问题讨论】:
-
尝试使用
\p{L}而不是[[:alpha:]] -
\[(?<name>[^\]]*)\]有什么问题?
标签: ruby-on-rails ruby regex gsub