【发布时间】:2015-08-30 01:56:35
【问题描述】:
我怎样才能让这个模式起作用:
Pattern pattern = Pattern.compile("[\\p{P}\\p{Z}]");
基本上,这将用任何类型的标点符号(p{P} 或任何类型的空格(p{Z})分割我的 String[] 句子。但我想排除以下情况:
(?<![A-Za-z-])[A-Za-z]+(?:-[A-Za-z]+){1,}(?![A-Za-z-])
这里解释的模式:Java regex patterns
这些连字符是这样的:“aaa-bb”、“aaa-bb-cc”、“aaa-bb-c-dd”。那么,我可以这样做吗?
【问题讨论】:
-
[\\p{P}\\p{Z}^-]是我的猜测 -
我不想允许这样:“--aa”或“bb--c”等。这两种模式有效,我只需要将两者混合。
-
好吧,那么……也许是
[\\p{P}\\p{Z}^(?<![A-Za-z-])[A-Za-z]+(?:-[A-Za-z]+){1,}(?![A-Za-z-])] -
对不起,你的问题不是很清楚。您想匹配不是连字符的单词之间的任何拆分?