用unicode字符提取字符串中的单词
extract words in string with unicode characters
在javascript(nodejs
)中,我需要用unicode字符索引文本字符串,即给定一个字符串,如:
"Bonjour à tous le monde,
je voulais être le premier à vous dire:
-'comment ça va'
-<est-ce qu'il fait beau?>"
我想得到以下单词数组:
["Bonjour", "à", "tous", "le", "monde", "je", "voulais", "être", ... "beau"]
如何使用regex或任何其他方式实现这一点?
ps:我安装并尝试了xregexp模块,该模块为javascript提供unicode支持,但由于对正则表达式毫无用处,我无法走得很远。。。
您可以使用与插件捆绑的XRegExp版本,该插件(以及其他插件)添加了对regex unicode类别的支持。我们对类别not an unicode letter
感兴趣,即'P{L}
。然后可以使用正则表达式XRegExp("''P{L}+")
分割字符串。
var s="Bonjour à tous le monde,'nje voulais être le premier à vous dire:'n -'comment ça va''n -<est-ce qu'il fait beau?>";
var notALetter = XRegExp("''P{L}+");
var words = XRegExp.split(s, notALetter);
看看这把小提琴。
您可能可以使用库"uwords"-https://github.com/AlexAtNet/uwords.它通过将L*Unicode组中的字符分组在一起,从文本中提取单词。
它的工作原理与XRegExp("''p{L}+")
类似,但速度极快。
示例:
var uwords = require('uwords');
var words = uwords('Bonjour à tous le monde,'n' +
'je voulais être le premier à vous dire:'n' +
'-''comment ça va'''n' +
'-<est-ce qu''il fait beau?>');
console.log(words);
[ 'Bonjour',
'à',
'tous',
'le',
'monde',
'je',
'voulais',
'être',
'le',
'premier',
'à',
'vous',
'dire',
'comment',
'ça',
'va',
'est',
'ce',
'qu',
'il',
'fait',
'beau' ]
附言:很抱歉迟到了,我希望它仍然有用。
一个想法是通过不属于单词的各种字符来分割字符串,然后过滤出空字符串:
var str = "Bonjour à tous le monde, je voulais être le premier à vous dire: -'comment ça va' -<est-ce qu'il fait beau?>";
var result = str.split(/[-:'"?'s><]+/).filter(function(item) { return item !== '' });
/*
["Bonjour", "à", "tous", "le", "monde,", "je", "voulais", "être", "le", "premier", "à", "vous", "ire", "comment", "ça", "va", "est", "ce", "qu", "il", "fait", "beau"]
*/
类似地,您可以通过上面的否定字符类进行匹配,并且不必过滤空字符串:
var result = str.match(/[^-:'"?'s><]+/g);
相关文章:
- 如何在Javascript中从字符串中提取某些单词
- 如何在PHP中获取特定的字符串单词
- 对字符串使用IndexOf来挑选某些单词
- 如何替换数据属性中的特定字符串单词
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 我如何从字符串中选出第一个单词的第一个字母,然后再选出第二个单词
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- 类别自动完成jQuery中的单词级自定义筛选器,而不是子字符串
- 测试字符串中的多个单词
- 正则表达式以更改字符串中的某些单词
- 输出包含3个单词的字符串中的前2个单词
- Geoplugin字符串结果为德语单词/语言
- 如何知道找到的单词是字符串的一部分还是JavaScript中的函数调用
- 跳过用户输入的文本字符串中的特殊字符,并在 Javascript 中的每个单词后添加连字符
- 查找数组中最长的单词/字符串
- 使用 jQuery 在大写字母中制作特定的单词(字符串)
- 在 javascript 中使用嵌套的 for 循环返回单词字符串中重复最多的字母
- JavaScript RegEx新手-从三个单词字符串中选择中间单词
- 使用javascript确保给定的单词(字符串)都是大写字母
- 判断多单词字符串是否包含单词