我一直在撰写一个关键字搜索功能的网络应用程序。如果关键字包含特殊字符(,@#<$%
等),我想将关键字分为两个,包含和不包含特殊字符。
例如@apple,应该插入@apple和apple。但是,只有在字符串未用双引号括起来时才应该这样做。
对于关键字hello "@this" is just a #test
我期待hello "@this" is just a #test test
有没有办法实现这个目标?
答案 0 :(得分:0)
您可以尝试以下操作并查看 -
String regex = "(?<!\")([,@#<$%]{1})(\\w+)(?!\")";
String input = "hello \"@this\" is just a #test";
System.out.println(input);
System.out.println(input.replaceAll(regex, "$0 $2"));
输出
hello "@this" is just a #test hello "@this" is just a #test test
答案 1 :(得分:0)
如果"
和@
之间有任何字符
喜欢:hello "stuff @this" is just a #test
您可以使用此模式:[,@#<$%](?=(([^"]*"){2})*[^"]*$)(\S+)
Demo