用特殊字符在 UTF-8 中标记单词中的句子
Tokenize sentence in word in UTF-8 with special characters
我正在尝试标记 Javascript (node.js) 中句子中的单词,删除非单词字符(点、逗号、句号、问号等),考虑到考虑 UTF-8 中的每个现有字母表(英语、拉丁语、希腊语、西里尔语、日语等)和数字,这意味着我需要一种方法来知道字符是单词的一部分还是符号。例如:
españa.es 4*5 Rußland Citroën, 東京 iphone-pro5
应该return一个数组:
[españa, es, 4, 5, Rußland, Citroën, 東京, iphone, pro5]
我正在使用以下正则表达式:
[0-9A-Za-zªº\u00B5\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02AF\u02B0-\u02C1\u0370-\u0374\u0376-\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03FF\u0400-\u0481\u048A-\u0523]+
0-9A-Za-z (numbers and English letters)
ªº (ordinal indicators)
\u00B5 (micro sign)
\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02AF (non-english latin letters)
\u02B0-\u02C1 (modifier letters)
\u0370-\u0374\u0376-\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03FF (greek and Coptic alphabets)
\u0400-\u0481\u048A-\u0523 (cyrillic alphabet)
是否有其他更简单或更完整的方法来拆分文本中的单词?
XRegExp
很容易:
var s = "españa.es 4*5 Rußland Citroën, 東京 iphone-pro5";
var r = XRegExp("[\pL\pN]+", "g");
var results = XRegExp.match(s, r);
console.log(results);
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.min.js"></script>
[\pL\pN]+
正则表达式匹配一个或多个 Unicode 字母 (\pL
) 或数字 (\pN
)。
我正在尝试标记 Javascript (node.js) 中句子中的单词,删除非单词字符(点、逗号、句号、问号等),考虑到考虑 UTF-8 中的每个现有字母表(英语、拉丁语、希腊语、西里尔语、日语等)和数字,这意味着我需要一种方法来知道字符是单词的一部分还是符号。例如:
españa.es 4*5 Rußland Citroën, 東京 iphone-pro5
应该return一个数组:
[españa, es, 4, 5, Rußland, Citroën, 東京, iphone, pro5]
我正在使用以下正则表达式:
[0-9A-Za-zªº\u00B5\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02AF\u02B0-\u02C1\u0370-\u0374\u0376-\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03FF\u0400-\u0481\u048A-\u0523]+
0-9A-Za-z (numbers and English letters)
ªº (ordinal indicators)
\u00B5 (micro sign)
\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02AF (non-english latin letters)
\u02B0-\u02C1 (modifier letters)
\u0370-\u0374\u0376-\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03FF (greek and Coptic alphabets)
\u0400-\u0481\u048A-\u0523 (cyrillic alphabet)
是否有其他更简单或更完整的方法来拆分文本中的单词?
XRegExp
很容易:
var s = "españa.es 4*5 Rußland Citroën, 東京 iphone-pro5";
var r = XRegExp("[\pL\pN]+", "g");
var results = XRegExp.match(s, r);
console.log(results);
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.min.js"></script>
[\pL\pN]+
正则表达式匹配一个或多个 Unicode 字母 (\pL
) 或数字 (\pN
)。