我有一个正则表达式here,我希望它只返回 用户,评论和帖子。但是,即使我有\s
,空格,在我的负字符集中,它仍然从中提取匹配。这是为什么?
答案 0 :(得分:1)
它匹配空位置(零长度字符串),而不是空格,这是因为你使用的是星号(零或更多)而不是加号(一个或多个)重复修饰符。 ([^.,()\s]+)
仅返回“用户”,“评论”和“帖子”。
答案 1 :(得分:1)
似乎与任何空格字符都不匹配,只是一个位置,因为*将匹配长度为0的字符串。
试试([^\s().,]+)
答案 2 :(得分:1)
是的,因为+ 这是一个提供每个参数的动力正则表达式 $ 1 =用户 $ 2 =评论 $ 3 =帖子
(([^。,()\ s] +)。(([^。,()\ s] +),([^。,()\ s] +)))
但当然,不能存在带有这些保留字符的评论或帖子
或者这是一个更灵活的例子 (([^。,()\ S] +)。(\ S *([^。,()\ S] +)\ S *,\ S *([^。,()\ S] +)\ S *))