如果有人能为我提供正则表达式来执行以下操作,我将非常感激。
规则:
示例:
<伦敦和厕所'成为'SYN(伦敦)和SYN(厕所)' '10和Mayfield和伦敦'将成为'10和SYN(梅菲尔德)和SYN(伦敦)'(10不包装,因为它不是一个词)我的问题的原因是我使用的是ORACLE同义词库,SQL语法要求用SYN()包装单词。
我最初会通过搜索空格然后使用String.format(SYN(%s),'London')在String中分割所有单词,以将单词包装在SYN()中,但我知道所有这一切都可以用正则表达式来完成,我认为会有一些急切的正规表达狂热分子会帮助我。
答案 0 :(得分:0)
尝试
System.out.println("10 and Mayfield and London".replaceAll("(\\p{Alpha}+)", "SYN($1)").replace("SYN(and)", "and"));
输出
10 and SYN(Mayfield) and SYN(London)