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']*| +|[.,"]