如何分割正则表达式空间和标点匹配,但保留结果数组中的标点符号
How to split regex space and punctuation matches, but keep the punctuation in the resulting array?
我想用匹配空格、逗号、问号和感叹号的正则表达式拆分字符串。但是我想在结果数组中包含匹配的标点符号(空格应该被丢弃)。例如:
正则表达式激怒了我,我不能接受它!
上面的字符串应该分割()为:
["正则表达式"、"刺激"、"我"、",","我"、"不能"、"花","它","!"]
我现在简单地用空格和逗号开始;我有以下代码:
inputStr.split(/'s|(,)/);
不幸的是,它给了我未定义的项-我做错了。我像往常一样花了几个小时搜索,但一无所获。我读过"向前看",但也不明白。有什么正则表达式大师能帮帮我吗?
尝试使用String.prototype.match()
与RegExp
/('w+''w+)|'w+|,|'!/g
-
('w+''w+)
匹配'w+''w+
并记住匹配。这些被称为捕获组。'w+''w+
匹配基本拉丁字母中的任何字母数字字符,包括下划线。相当于[A-Za-z0-9_],后面跟着匹配撇号,后面跟着匹配字母数字字符。+
匹配前一项'w
1次以上。相当于{1,}。 -
'w+
匹配基本拉丁字母中的任何字母数字字符,包括下划线。 -
,
匹配逗号 -
'!
匹配感叹号
参见RegExp
var str = "Regex irritates me, I can't take it!";
var res = str.match(/('w+''w+)|'w+|,|'!/g);
console.log(res)
应该可以了
String pat="Regex激怒了我,我不能接受它!"
pat.split (' s);
正则表达式字符串((' w ' !) *) ' S
解释:
- ()捕获组。
- the ['w'!]*捕获任何单词字符、撇号或感叹号
- 'S将不捕获空间。
试试regexpal.com
相关文章:
- 分派点击事件并保留击键修饰符
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- JSONP请求返回结果,但也触发error_callback
- 提交后保留下拉选择的值
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 刷新后保留对网页的更改
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 表单提交后保留数据库查询结果
- 角度 ui 类型提前建议 + 如果没有结果,则保留
- Javascript -根据字符拆分字符串,但将其保留在结果数组中
- 如何分割正则表达式空间和标点匹配,但保留结果数组中的标点符号
- 如何在单击搜索按钮并在同一页面上打印结果后同时保留搜索查询框和字母搜索
- 如何在选择后保留Select2结果
- 分割一个值,但将值保留在结果数组中
- 保留proc.stdout.on()结果