用于拆分搜索短语的正则表达式 我希望有人能帮我写一个C++的正则表达式,它与搜索短语中的单词匹配,并为学习目的而逐个解释。p>

用于拆分搜索短语的正则表达式 我希望有人能帮我写一个C++的正则表达式,它与搜索短语中的单词匹配,并为学习目的而逐个解释。p>,c++,regex,boost,C++,Regex,Boost,我需要的是一个正则表达式,它匹配“中的字符串,比如“大家好”,以及以*开头/结尾的单个单词,比如*ack/overv* 对于quote部分,我有\“[\^\\s][\^\“]*\”,但我不知道通配符(*)部分,以及如何将其与quote regex组合。只要没有quote嵌套(一般来说,嵌套是regex不擅长的): (?:(?尝试以下正则表达式: (?:\*?\w+\*?|"(?:[^\x5C"]+|\x5C(?:\x5C\x5C)*")*")+ 为了便于阅读,我将反斜杠字符替换为\x5C 表达

我需要的是一个正则表达式,它匹配
中的字符串,比如
“大家好”
,以及以
*
开头/结尾的单个单词,比如
*ack
/
overv*


对于quote部分,我有
\“[\^\\s][\^\“]*\”
,但我不知道通配符(
*
)部分,以及如何将其与quote regex组合。

只要没有quote嵌套(一般来说,嵌套是regex不擅长的):


(?:(?尝试以下正则表达式:

(?:\*?\w+\*?|"(?:[^\x5C"]+|\x5C(?:\x5C\x5C)*")*")+
为了便于阅读,我将反斜杠字符替换为
\x5C

表达式
“(?:[^\x5C”]+\x5C(?:\x5C\x5C)**”
也将匹配
“foo\”bar\“
和其他正确的转义引号序列(但只能转义

因此,
foo*bar*baz*qux*“foo\”bar\
应分为:

  • foo*
  • bar
  • *baz
  • *qux*
  • “foo\”条\
如果不想匹配上例中的
bar
,请使用以下选项:

(?:\*\w+|\w+\*|"(?:[^\x5C"]+|\x5C(?:\x5C\x5C)*")*")+

“我知道,我会使用正则表达式。”现在他们有两个问题…“我知道,我会引用一段关于正则表达式的引文。”现在作者有三个问题,因为没有人告诉他为什么不使用正则表达式!(没有什么私事,亚当,这段引文在我看来被过度使用了。)您是否还希望匹配不以
*
开头/结尾的单个单词?@Gumbo这会很好,当我写问题时,我没有想到单个单词。很抱歉,您的第一个正则表达式不起作用。它似乎匹配了“这是一个“测试字符串”,尽管它应该匹配”测试字符串中的每个单词“只是。我以前有过,但我想他也会想匹配这些词。让我们看看Qwark说了什么。今天是星期一早上,我在工作中测试了正则表达式,它确实比我希望的更完美=),谢谢。
(?:\*\w+|\w+\*|"(?:[^\x5C"]+|\x5C(?:\x5C\x5C)*")*")+