连字符混合词的正则表达式

时间:2016-11-20 07:25:38

标签: java regex

我可以使用 string.split("\\W+") 来包含仅包含字符的字词。

然而:

  1. 我不希望将 “重复使用” 等字词细分为 “re” < / strong>&amp;的 “使用” 即可。
    还有像 “偏离” 这样的多个连字符。

  2. 我想将 “和 - 哦” 分解为 “和” &amp;的 “OH”

  3. 我怎么可能实现这个目标?

2 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

string.split("[^\\w\\-]+|--+")

答案 1 :(得分:1)

您可以先将连续连字符替换为特殊字符,然后再进行简单的正则表达式分割。

请参阅以下代码。

public class Test {
    public static void main(String args[]){
        String str = "This is^^some@@words-apple-banana--orange";
        str = str.replaceAll("[-]{2,}", "@");
        System.out.println(str);
        String regex = "[^\\w-]+";
        String arr[] = str.split(regex);
        for(String item:arr){
            System.out.println(item);
        }
    }
}

结果是:

This are^^some@@words-apple-banana@orange
This
are
some
words-apple-banana
orange