我需要将带有法语字符(dérange
)的单词与正则表达式匹配。到目前为止,我有这个:
var text = "An inconvenient (qui dérange) truth";
var splitText = text.trim().match(/\w+|\s+|[^\s\w]+/g);
console.log(splitText);

但是,它将é
视为单独的字母。为什么?
我需要在match()
方法中使用正则表达式,以便splitText
对象还包含单词déranger
,而不包含三个单词d
,é
和range
就像现在一样。
答案 0 :(得分:1)
您可以尝试使用正则表达式split method来获取文字中的所有字词,这是一个有效的例子:
var text = "An inconvenient (qui dérange) truth";
var splitText = text.trim().split(/\s+/);
console.log(splitText);

答案 1 :(得分:0)
似乎你想要从非空格中分配空格。但是,非空格有两种表达式:\w+
(匹配[a-zA-Z_0-9]+
)和[^\s\w]+
(匹配其他所有内容,除了空白外 - 所以这与单独的é
匹配只需将这两者合并到[^\s]+
或 - 更简单 - \S+
:
var text = "An inconvenient (qui dérange) truth";
var splitText = text.trim().match(/\S+|\s+/g);
console.log(splitText);