【发布时间】:2016-11-15 16:43:21
【问题描述】:
我正在寻找一个匹配所有出现的字符的正则表达式(我可以在 Javascript 中实现,所以没有后视),只要它没有出现在其他两个字符之间。例如,我想匹配所有连字符,只要它们不在加号之间。
----- // should match.
+---+ // should not match
---+---+--- // should only match the first 3 and last 3 characters.
我尝试过像这样调整this post 中使用的方法:
[-]+(?![^+]*\+)+
但它没有按要求匹配。任何帮助是极大的赞赏。
附:专门寻找 REGEX 解决方案。我意识到这可能不是最佳解决方案,但我特别想提高我对正则表达式的了解。
【问题讨论】:
-
为什么必须是正则表达式?使用字符串方法实现这一点很简单。
-
这是一个 XY 问题。请解释一下你在现实生活中的所作所为。
-
我不能在 SO 上问 XY 问题?
-
/(^-+|-+$|(?!.*\+)-+)/g -
也许你可以使用The Trick:
\+-+\+|(-+)(:
标签: javascript regex regex-lookarounds