作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要帮助来构建正则表达式。我正在编写一个在字符串中查找特定单词的软件。但我还需要寻找短语。该字符串由用户在文本框中输入。
目前我使用以下正则表达式 \s+
将空格替换为 & 符号:word1 word2 word3
到 word1&word2&word3
我的新要求必须包括用引号引起来的短语,例如在 Google 中搜索短语。
"word1 word2" "word3 word4" word5
必须是:
word1 word2&word3 word4&word5
提前致谢。
编辑:如果有其他方式或方法可以做到这一点,我愿意接受任何想法。
最佳答案
这假设任务是平衡的——你有偶数个任务,而不是中间的任务。
您可以匹配 /"([^"]+)"|(\S+)/
- 这将导致您的单词 - 带引号的字符串或非空格。它捕获了单词组 1 或 2,然后您可以使用 &
分隔符join
结果。
另一种选择:您可以在单个替换中获取它,这与第一种模式非常相似,方法是跳过您的标记。这是一个 JavaScript 示例:
s = s.replace(/(?:"([^"]+)"|(\S+))\s*/g, '$1$2&');
(请注意,字符串末尾会有一个额外的符号)
关于java - 用于获取用双引号引起来的短语的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10468439/
我是一名优秀的程序员,十分优秀!