Javascript 如何分割正则表达式空间和标点匹配,但将标点保留在结果数组中?
我想拆分一个带有正则表达式匹配空格、逗号、问号和感叹号的字符串。但是我想在结果数组中包含匹配的标点符号(空格应该被丢弃)。例如: Regex烦死我了,我受不了 上面的字符串应拆分为: [“Regex”、“烦躁”、“我”、“我”、“不能”、“拿”、“它”、“它”!”] 现在,我只是简单地用空格和逗号开始;我有以下代码:Javascript 如何分割正则表达式空间和标点匹配,但将标点保留在结果数组中?,javascript,regex,Javascript,Regex,我想拆分一个带有正则表达式匹配空格、逗号、问号和感叹号的字符串。但是我想在结果数组中包含匹配的标点符号(空格应该被丢弃)。例如: Regex烦死我了,我受不了 上面的字符串应拆分为: [“Regex”、“烦躁”、“我”、“我”、“不能”、“拿”、“它”、“它”!”] 现在,我只是简单地用空格和逗号开始;我有以下代码: inputStr.split(/\s|(,)/); 不幸的是,它给了我未定义的项目-我做错了。我花了几个小时研究(和往常一样),结果一无所获。我读过关于“向前看”的书,但也不明白
inputStr.split(/\s|(,)/);
不幸的是,它给了我未定义的项目-我做错了。我花了几个小时研究(和往常一样),结果一无所获。我读过关于“向前看”的书,但也不明白。任何正则表达式大师都能帮我一把吗?试着用
String.prototype.match()
和RegExp
/(\w+'\w+)\w+,\124\/g
匹配(\w+'\w+
并记住匹配。这些被称为捕获组<代码>\w+'\w+匹配基本拉丁字母表中的任何字母数字字符,包括下划线。相当于[A-Za-z0-9_],后跟匹配撇号,后跟匹配字母数字字符。\w+'\w+
与前面的项目+
匹配一次或多次。等价于{1,}\w
匹配基本拉丁字母表中的任何字母数字字符,包括下划线\w+
匹配逗号,
\代码>匹配感叹号
var str=“Regex烦死我了,我受不了!”;
var res=str.match(/(\w+'\w+)\w+\w+\g);
console.log(res)
尝试使用String.prototype.match()
和RegExp
/(\w+'\w+)\w+\124;,|\/g
匹配(\w+'\w+
并记住匹配。这些被称为捕获组<代码>\w+'\w+匹配基本拉丁字母表中的任何字母数字字符,包括下划线。相当于[A-Za-z0-9_],后跟匹配撇号,后跟匹配字母数字字符。\w+'\w+
与前面的项目+
匹配一次或多次。等价于{1,}\w
匹配基本拉丁字母表中的任何字母数字字符,包括下划线\w+
匹配逗号,
\代码>匹配感叹号
var str=“Regex烦死我了,我受不了!”;
var res=str.match(/(\w+'\w+)\w+\w+\g);
console.log(res)
尝试使用String.prototype.match()
和RegExp
/(\w+'\w+)\w+\124;,|\/g
匹配(\w+'\w+
并记住匹配。这些被称为捕获组<代码>\w+'\w+匹配基本拉丁字母表中的任何字母数字字符,包括下划线。相当于[A-Za-z0-9_],后跟匹配撇号,后跟匹配字母数字字符。\w+'\w+
与前面的项目+
匹配一次或多次。等价于{1,}\w
匹配基本拉丁字母表中的任何字母数字字符,包括下划线\w+
匹配逗号,
\代码>匹配感叹号
var str=“Regex烦死我了,我受不了!”;
var res=str.match(/(\w+'\w+)\w+\w+\g);
console.log(res)
尝试使用String.prototype.match()
和RegExp
/(\w+'\w+)\w+\124;,|\/g
匹配(\w+'\w+
并记住匹配。这些被称为捕获组<代码>\w+'\w+匹配基本拉丁字母表中的任何字母数字字符,包括下划线。相当于[A-Za-z0-9_],后跟匹配撇号,后跟匹配字母数字字符。\w+'\w+
与前面的项目+
匹配一次或多次。等价于{1,}\w
匹配基本拉丁字母表中的任何字母数字字符,包括下划线\w+
匹配逗号,
\代码>匹配感叹号
var str=“Regex烦死我了,我受不了!”;
var res=str.match(/(\w+'\w+)\w+\w+\g);
console.log(res)
这应该可以工作
String pat=“Regex让我恼火,我受不了!”
帕特·斯普利特(“\s”) 这应该行得通
String pat=“Regex让我恼火,我受不了!”
帕特·斯普利特(“\s”) 这应该行得通
String pat=“Regex让我恼火,我受不了!”
帕特·斯普利特(“\s”) 这应该行得通
String pat=“Regex让我恼火,我受不了!”
帕特·斯普利特(“\s”) 正则表达式字符串是([\w'!,]*)\S
说明:
- ()捕获组
- [\w'!]*可捕获任何单词字符、撇号或感叹号
- \S将不会捕获空间
- ()捕获组
- [\w'!]*可捕获任何单词字符、撇号或感叹号
- \S将不会捕获空间
- ()捕获组
- [\w'!]*可捕获任何单词字符、撇号或感叹号
- \S将不会捕获空间
- ()捕获组
- [\w'!]*可捕获任何单词字符、撇号或感叹号
- \S将不会捕获空间
在regexpal.com上试试看,效果不错!非常感谢。现在我需要对它进行反向工程,找出原因。。。除非你愿意解释;)谢谢你的解释!