【发布时间】:2026-02-16 04:30:02
【问题描述】:
我正在使用 ruby 1.9 并试图找出我需要哪个正则表达式来实现这一点:
Encoding.default_internal = Encoding.default_external = 'utf-8'
"föö".match(/(\w+)/u)[1] == "föö"
# => false
【问题讨论】:
-
您必须将两个字符串都转换为相同的 unicode,才能匹配它。使用 Iconv,您可以将字符串转换为特定的 unicode。
-
添加了默认编码。还是不行……
-
尝试在脚本开头添加注释“# coding utf-8”并确保该脚本文件是utf-8。
-
使用
[/(\w+)/u,1]- 它更短。甚至只是[/\w+/u],因为您的正则表达式中的()占据了一切。