如何在正则表达式中找到连字符之间的所有内容? 下面的数组答案应为[“aaa”,“bbb”,“ccc”,“ddd”]
<script>
myRe= new RegExp ("xxxxxx");
myArray = myRe.exec("-aaa-bbb-ccc-ddd-");
</script>
另外......如果字符串中有逗号并且它们需要包含在数组中会发生什么?
这是否正常......?
["a,a,a","bbb","ccc","ddd"]
答案 0 :(得分:3)
一种快速简便的解决方案是在字符串中查找单词字符:
"-aaa-bbb-ccc-ddd-".match(/[\w]+/g)
这将返回["aaa", "bbb", "ccc", "ddd"]
如果您需要在其中匹配字符串中的逗号,则可以向捕获组添加逗号:
// added ',' to [\w,]
"-a,a,a-bbb-ccc-ddd-".match(/[\w,]+/g)
这将返回["a,a,a", "bbb", "ccc", "ddd"]
如果您正在寻找任何在某些'之间匹配,此解决方案将无法很好地扩展,但如果您有一个简单的用例,那么我会说使用简单像上面演示的那样匹配。
<强>更新强>
由于你的评论说你需要匹配'-'s之间的任何东西,你可以使用以下正则表达式:
/[^\-]+/g
这将匹配组中不是' - '的任何内容,因此:
"-a,@$#$a,a-bbb-ccc-ddd-".match(/[^\-]+/g)
将返回["a,@$#$a,a", "bbb", "ccc", "ddd"]