如何匹配正则表达式中的重音字符?
How to match accented characters in a regex?
我将此文本块定义为下面的 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
可能的解决方案之一是接受所有非 ]
符号作为名称的一部分:
@\[(?<name>[^\]]+)\]\(content:(?<userid>\d+)\)
^^^ <- match all not `]` symbols
我将此文本块定义为下面的 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
可能的解决方案之一是接受所有非 ]
符号作为名称的一部分:
@\[(?<name>[^\]]+)\]\(content:(?<userid>\d+)\)
^^^ <- match all not `]` symbols