Javascript 按单词边界(包括撇号)拆分

Javascript 按单词边界(包括撇号)拆分,javascript,regex,Javascript,Regex,我想把字符串中的每个单词(包括空格和标点符号)分成不同的组,但我想把带撇号的单词放在一起 例如: Phrase: This is right. Groups: [This] [ ] [is] [ ] [right] [.] Phrase: This isn't right. Groups: [This] [ ] [isn't] [ ] [right] [.] Phrase: "I said ok." Groups: ["] [I] [ ] [said] [ ] [ok] [.] ["] 我

我想把字符串中的每个单词(包括空格和标点符号)分成不同的组,但我想把带撇号的单词放在一起

例如:

Phrase: This is right.
Groups: [This] [ ] [is] [ ] [right] [.]

Phrase: This isn't right.
Groups: [This] [ ] [isn't] [ ] [right] [.]

Phrase: "I said ok."
Groups: ["] [I] [ ] [said] [ ] [ok] [.] ["]
我正在使用正则表达式:
str.split(/(?=[,“\s]|\b)/)

但是,撇号不起作用。对于阶段:this not right.,它的拆分方式如下:

[This] [ ] [isn] ['] [t] [ ] [right] [.]

有没有一种方法可以将不在一个组中的字符保持在一个组中?

我会使用
.match
代替:匹配一个单词字符,后跟(单词字符或撇号)(
\w[\w']*
),或者匹配空格:
+
,或者匹配其他标点(
[,“]
):

constinputs=`这是正确的。
这是不对的。
“我说可以。”`.split('\n');
for(输入的常量输入){
console.log(input.match(/\w[\w']*|+|[,“]/g));

}
我会使用
.match
代替:匹配一个单词字符,后跟(单词字符或撇号)(
\w[\w']*
),或匹配空格:
+
,或匹配其他标点(
[,“]
):

constinputs=`这是正确的。
这是不对的。
“我说可以。”`.split('\n');
for(输入的常量输入){
console.log(input.match(/\w[\w']*|+|[,“]/g));

}
您可以尝试在模式
[A-Za-z']+|[^A-Za-z']
上查找所有正则表达式匹配项,该模式匹配一个单词(字母或撇号)或单个非单词字符

var regex=/[A-Za-z']+[A-Za-z']/g;
var input=“\”这不对。\”;
var-m;
var匹配=[];
var i=0;
做{
m=regex.exec(输入);
如果(m){
匹配[i]=m[0];
++一,;
}
}while(m);

console.log(matches);
您可以尝试在模式
[A-Za-z']+|[^A-Za-z']
上查找所有正则表达式匹配项,该模式匹配一个单词(字母或撇号)或单个非单词字符

var regex=/[A-Za-z']+[A-Za-z']/g;
var input=“\”这不对。\”;
var-m;
var匹配=[];
var i=0;
做{
m=regex.exec(输入);
如果(m){
匹配[i]=m[0];
++一,;
}
}while(m);
console.log(匹配);
\w[\w']*| +|[.,"]