1

鉴于此文本:

hello-world

我可以将它与这个正则表达式匹配:

hello\-.+?\b

问题是如果我有这个:

hello-world-howyadoing

第二个破折号被认为是一个单词边界,所以匹配在“世界”结束

如何在正则表达式中说“在下一个单词边界停止,除非单词边界是破折号”?

这是在.js 中,顺便说一句。

4

2 回答 2

3

我没有做过 JS 正则表达式,但我很确定下划线实际上也包含在单词中,所以正确的集合也将包含 a _(我不知道下划线是否需要在 JS 中转义)

hello\-[a-zA-Z0-9\-_]*

于 2010-06-19T03:14:39.900 回答
2

这取决于你在做什么,但你可能只需要指定你感兴趣的单词边界列表

hello\-[a-zA-Z0-9\-]*

可能完成你想要的

于 2010-06-19T03:10:45.793 回答