0

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

4

2 回答 2

1

您可以尝试使用正则表达式的split 方法来获取文本中的所有单词,这是一个工作示例:

var text = "An inconvenient (qui dérange) truth";

var splitText = text.trim().split(/\s+/);

console.log(splitText);

于 2017-11-15T19:17:25.810 回答
0

看来您想将空格与非空格分开。但是,非空格有两个表达式:\w+(matching [a-zA-Z_0-9]+) 和[^\s\w]+(匹配其他所有内容,除了空格 - 所以这是é单独匹配。只需将这两个组合成[^\s]+or - 更简单 - \S+

var text = "An inconvenient (qui dérange) truth";
var splitText = text.trim().match(/\S+|\s+/g);
console.log(splitText);

于 2017-11-15T19:17:55.047 回答