Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何分割正则表达式空间和标点匹配,但将标点保留在结果数组中?_Javascript_Regex - Fatal编程技术网

Javascript 如何分割正则表达式空间和标点匹配,但将标点保留在结果数组中?

Javascript 如何分割正则表达式空间和标点匹配,但将标点保留在结果数组中?,javascript,regex,Javascript,Regex,我想拆分一个带有正则表达式匹配空格、逗号、问号和感叹号的字符串。但是我想在结果数组中包含匹配的标点符号(空格应该被丢弃)。例如: Regex烦死我了,我受不了 上面的字符串应拆分为: [“Regex”、“烦躁”、“我”、“我”、“不能”、“拿”、“它”、“它”!”] 现在,我只是简单地用空格和逗号开始;我有以下代码: inputStr.split(/\s|(,)/); 不幸的是,它给了我未定义的项目-我做错了。我花了几个小时研究(和往常一样),结果一无所获。我读过关于“向前看”的书,但也不明白

我想拆分一个带有正则表达式匹配空格、逗号、问号和感叹号的字符串。但是我想在结果数组中包含匹配的标点符号(空格应该被丢弃)。例如:

Regex烦死我了,我受不了

上面的字符串应拆分为:

[“Regex”、“烦躁”、“我”、“我”、“不能”、“拿”、“它”、“它”!”]

现在,我只是简单地用空格和逗号开始;我有以下代码:

inputStr.split(/\s|(,)/);

不幸的是,它给了我未定义的项目-我做错了。我花了几个小时研究(和往常一样),结果一无所获。我读过关于“向前看”的书,但也不明白。任何正则表达式大师都能帮我一把吗?

试着用
String.prototype.match()
RegExp
/(\w+'\w+)\w+,\124\/g

  • (\w+'\w+
    匹配
    \w+'\w+
    并记住匹配。这些被称为捕获组<代码>\w+'\w+匹配基本拉丁字母表中的任何字母数字字符,包括下划线。相当于[A-Za-z0-9_],后跟匹配撇号,后跟匹配字母数字字符。
    +
    与前面的项目
    \w
    匹配一次或多次。等价于{1,}
  • \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+
    并记住匹配。这些被称为捕获组<代码>\w+'\w+
    匹配基本拉丁字母表中的任何字母数字字符,包括下划线。相当于[A-Za-z0-9_],后跟匹配撇号,后跟匹配字母数字字符。
    +
    与前面的项目
    \w
    匹配一次或多次。等价于{1,}
  • \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+
    并记住匹配。这些被称为捕获组<代码>\w+'\w+
    匹配基本拉丁字母表中的任何字母数字字符,包括下划线。相当于[A-Za-z0-9_],后跟匹配撇号,后跟匹配字母数字字符。
    +
    与前面的项目
    \w
    匹配一次或多次。等价于{1,}
  • \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+
    并记住匹配。这些被称为捕获组<代码>\w+'\w+
    匹配基本拉丁字母表中的任何字母数字字符,包括下划线。相当于[A-Za-z0-9_],后跟匹配撇号,后跟匹配字母数字字符。
    +
    与前面的项目
    \w
    匹配一次或多次。等价于{1,}
  • \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将不会捕获空间
在regexpal.com中尝试它

正则表达式字符串是([\w'!,]*)\S

说明:

  • ()捕获组
  • [\w'!]*可捕获任何单词字符、撇号或感叹号
  • \S将不会捕获空间
在regexpal.com中尝试它

正则表达式字符串是([\w'!,]*)\S

说明:

  • ()捕获组
  • [\w'!]*可捕获任何单词字符、撇号或感叹号
  • \S将不会捕获空间
在regexpal.com中尝试它

正则表达式字符串是([\w'!,]*)\S

说明:

  • ()捕获组
  • [\w'!]*可捕获任何单词字符、撇号或感叹号
  • \S将不会捕获空间

在regexpal.com上试试看,效果不错!非常感谢。现在我需要对它进行反向工程,找出原因。。。除非你愿意解释;)谢谢你的解释!