我需要帮助来构建正则表达式.我正在编写一个查找字符串中某些单词的软件.但我还需要寻找短语.该字符串由用户在文本框中输入.
目前,我使用以下正则表达式\s+来替换&符号:
word1 word2 word3toword1&word2&word3
我的新要求必须包含用引号括起来的短语,例如在Google中搜索短语.
"word1 word2" "word3 word4" word5
Run Code Online (Sandbox Code Playgroud)
一定是:
word1 word2&word3 word4&word5
Run Code Online (Sandbox Code Playgroud)
提前致谢.
编辑:如果有另一种方式或其他方法来做同样的事情,我对任何想法持开放态度.
这假设任务很平衡 - 你有任意数量的任务,而不是任务中间的任务.
你可以匹配/"([^"]+)"|(\S+)/- 这将导致你的单词 - 引用字符串或非空格.它捕获了组1 或组2中的单词,然后您可以join使用&分隔符获得结果.
另一种选择:你可以通过跳过你的标记,在一次替换中获得它,与第一种模式非常相似.这是一个JavaScript示例:
s = s.replace(/(?:"([^"]+)"|(\S+))\s*/g, '$1$2&');
Run Code Online (Sandbox Code Playgroud)
(请注意,在字符串的末尾你会有一个额外的&符号)