【问题标题】:RegExp match one Word or Multiple Words in QuotesRegExp 匹配引号中的一个单词或多个单词
【发布时间】:2008-11-28 12:34:18
【问题描述】:

我需要一个匹配引号中的一个或多个单词的正则表达式。

[\w]* 匹配一个单词

"[\w\W&&[^"]]*" 匹配引号中的多个单词。

(顺便说一句,不知道为什么 \w\W 有效,但不是一个简单的 . (应该匹配所有字符)

那么我该如何结合这两个正则表达式呢?

【问题讨论】:

    标签: regex


    【解决方案1】:

    "[^"]+" 做你想做的事吗? (匹配一个双引号,匹配一个或多个不是双引号的字符,然后匹配第二个双引号。)

    【讨论】:

      【解决方案2】:

      首先谢谢。

      您的回答确实有帮助 - 但我注意到我的问题可能不够清楚。

      无论如何,根据您的回答,我最终得到了这个正则表达式:

      "[^"]+"|[\w]+

      与引号中的单词和多个单词匹配。

      例如:什么是“这东西” 将给出 3 场比赛: 第一场比赛:什么 第二场比赛:是 第三场比赛:“这个东西”

      这正是我所需要的。再次感谢。

      【讨论】:

      • +1 简单得多 ;) 我一开始没有得到你想要的,但我留下我的答案供参考
      【解决方案3】:

      我更喜欢:

      "\s*((?:\w(?!\s+")+|\s(?!\s*"))+\w)\s*"
      

      而不是"[^"]+",因为^" 匹配所有内容,而不仅仅是\w (字母数字) char [a-zA-Z_0-9]

      这样,您只匹配引号内的 \w 字符,而没有尾随空格。

      " ee eee e ee  "
      

      给你分组(1):

      ee eee e ee
      

      这里的否定前瞻(?!\s+") 是为了确保我不包括双引号之前的最后一个空格;

      【讨论】:

        猜你喜欢
        • 2011-12-21
        • 2012-06-22
        • 2017-02-20
        • 1970-01-01
        • 2019-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-23
        相关资源
        最近更新 更多