考虑字符串hello/pls/friend
。我可能会使用 RegExp /\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 专业人士!
最佳答案
\(([^/)]*)\)|[^/)(]*
您可以使用它。所有匹配项都将在 wrapped=False
下。所有捕获的组都应在 wrapped = True
下。
查看演示。
关于javascript - 正则表达式 : match with optional wrapping text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32086053/