【发布时间】:2008-11-28 12:34:18
【问题描述】:
我需要一个匹配引号中的一个或多个单词的正则表达式。
[\w]* 匹配一个单词
"[\w\W&&[^"]]*" 匹配引号中的多个单词。
(顺便说一句,不知道为什么 \w\W 有效,但不是一个简单的 . (应该匹配所有字符)
那么我该如何结合这两个正则表达式呢?
【问题讨论】:
标签: regex
我需要一个匹配引号中的一个或多个单词的正则表达式。
[\w]* 匹配一个单词
"[\w\W&&[^"]]*" 匹配引号中的多个单词。
(顺便说一句,不知道为什么 \w\W 有效,但不是一个简单的 . (应该匹配所有字符)
那么我该如何结合这两个正则表达式呢?
【问题讨论】:
标签: regex
"[^"]+" 做你想做的事吗? (匹配一个双引号,匹配一个或多个不是双引号的字符,然后匹配第二个双引号。)
【讨论】:
首先谢谢。
您的回答确实有帮助 - 但我注意到我的问题可能不够清楚。
无论如何,根据您的回答,我最终得到了这个正则表达式:
"[^"]+"|[\w]+
与引号中的单词和多个单词匹配。
例如:什么是“这东西” 将给出 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+") 是为了确保我不包括双引号之前的最后一个空格;
【讨论】: