使用元音或一组字符拆分字符串

时间:2018-06-03 14:59:43

标签: java arrays regex string split

我正在尝试使用正则表达式使用元音或特殊字符拆分字符串。

  • 输入:maxtin'asiiro
  • 预期输出:[ ma, xti, n', a, si, i, ro]

现在我已设法使用元音拆分字符串。

Arrays.toString(word.split("(?<=[aeiou])")));

但是,我不知道如何将特殊字符n'合并到正则表达式以获得上述输出。

注意:n'此处应在拆分时视为单个特殊字符。

我尝试了以下操作,但输出错误。

Arrays.toString(word.split("(?<=[aeiou(n')])")));

有人可以给我一个指针吗?

3 个答案:

答案 0 :(得分:5)

如果n'是您要用于拆分的唯一特殊序列,您可以尝试拆分替换:

String word = "maxtin'asiiro";
System.out.println(Arrays.toString(word.split("(?<=[aeiou]|n')")));

[ma, xti, n', a, si, i, ro]

Demo

答案 1 :(得分:4)

与指定n'事件不同,我会采用更通用的方法,包括'字符之前的任何字母。

String word = "maxtin'asiiro";
String split[] = word.split("(?<=[aeiou]|[a-zA-Z]')");

[ma, xti, n', a, si, i, ro]

中的结果

Nore认为:

  • |作为()括号
  • 之间令牌的运算符
  • [a-zA-Z]'代表any字母和'字符

演示是ar Regex101。请注意字符之后的字符之间的紫色分隔符,后面跟着'字符。

答案 2 :(得分:0)

添加到Nikolas&#39;回答,如果您想在元音后面分割或任何字符后跟一个&#39;,您还可以针对您的输入样本测试以下内容:

String word = "maxtin'asiiro";
String split[] = word.split("(?<=[aeiou'])");

唯一的区别是,如果&#39;是第一个角色