正则表达式:选择不以特定字符开头的文本

时间:2015-04-19 04:58:52

标签: regex

我正在尝试使用regexp来解析基本的CSS选择器,例如:" tag.class #id tag"

我已经能够使用/\.\w+/使用/#\w+/匹配该类,并且使用/[^\.#\w+]\w+/我可以匹配最终标记(加上前面的空格)/[^#.]\w+/ ,但到目前为止,我一直无法找到匹配这两个标签的方法。

我试图匹配那些不是以#&#39;#&#39;开头的字眼。和&#39;。&#39;,例如使用/(?<!#)\w+/(除了&#39;。&#39;#&#39;#&#39;之外的所有内容),或使用类似{ {1}}(没有任何匹配),失败了。

是否可以匹配一组单词字符,只要它起始于某个字符,例如&#39;。&#39;或&#39;#&#39;?

1 个答案:

答案 0 :(得分:0)

如果您使用:

/\w+/g

然后它将返回包含任何这些字符的所有单词:

]a-zA-Z0-9_]

这不包括.#

但是,如果您想要捕获非.#的任何非空格字符组,请使用:

/[^.#\s]+/g

这将匹配除.#以及空白区域以外的任何内容。

如果你支持lookbehind,那么你可以使用:

/(?<![.#])\b([^.#\s]+)\b/g

RegEx Demo