【发布时间】:2015-08-20 13:35:20
【问题描述】:
考虑字符串hello/pls/friend。我可能会使用正则表达式/\w+/g 捕获这些单词,从而生成['hello', 'pls', 'friend']。
现在考虑字符串(hello)/pls/friend。我现在不仅对单词感兴趣,而且对每个单词是否包含在括号内感兴趣。
我想出的一个解决方案是“复制”我的原始表达式,添加带有(转义)括号的第二个版本。说.../(\(\w+\))|(\w+)/g
我宁愿不复制原始表达式,所以我想知道是否有更简洁的方法来解决这个问题。
目标/要求是:
这与
String.prototype.replace()一起使用并指定了回调,因此如果它对您有用,请记住这一点。-
经过一些光照操作,应该可以生成这样的对象:
[ { word: "hello", wrapped: true }, { word: "pls", wrapped: false }, { word: "friend", wrapped: false } ] 不匹配的括号,即
(hello/pls,不应匹配。这些是 JavaScript 正则表达式,因此请牢记这些限制
不需要处理多个换行的单词,如
(hello/pls)/friend。
感谢您抽出宝贵时间阅读本文,RegExp 专家!
【问题讨论】:
-
注:
/\(?\w+\)?/g几乎等价,但不满足条件 3。
标签: javascript regex