我在文本中搜索单词:
var newWords = data.match(/\b[^\s\d,-.:!?{}\"“\[\]']+/g);
这是有效的,除了以Ä,Ö,Ü等字母开头的单词,这在德语中是完全可能的。
我真正想做的是写上面的搜索,如
var newWords = data.match(/\b[^\W\d]+/g);
但是在没有ä,ö,ü的情况下,这让我完全没有。 ß也不见了。
有一个很好的解决方案吗?
答案 0 :(得分:2)
作为简单的解决方案,我建议使用
var newWords = data.match(/[\w\xc0-\xd6\xd8-\xf6\xf8-\xff]+/g);
这匹配在任何情况下仅由字母AZ组成的字符串以及代码页ISO/IEC 8859-1中代码值为192到255的所有字母,与Windows-1252类似,但{{3}除外只要data
字符串只包含北美和西欧文本,就可以{} {}和<{p}}。
使用表达式
var newWords = data.match(/[\w\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff]+/g);
ISO / IEC 8859-1中的特殊语言特定字母的Unicode值分别是Windows-1252,并且因此表达式忽略了其他语言(如东欧语言)的其他字母。
答案 1 :(得分:0)
您可以使用要匹配的ascii代码对它们进行简单匹配:
^\xD6nder$
\xD6
将是Ö
(D6
是ascii代码214
的十六进制)。您可以在此处查找更多十六进制值:http://www.torsten-horn.de/techdocs/ascii.htm