Java正则表达式 - 如何将字符串分成几部分

时间:2018-06-06 12:45:27

标签: java regex javafx textflow

我正在尝试将文字剪切为Array(或List)。 例如String

String str = "so this will be _ITALIC_ and this will be *BOLD* and so on";

应分为:

String[] arr = new String[] {"so this will be ", "_ITALIC_", " and this will be ", "*BOLD*", " and so on"};

我用regex做了一些事情,比如:

Pattern用于查找我的匹配项:

public static final Pattern Italic = Pattern.compile("_(.*?)_");
public static final Pattern Bold = Pattern.compile("\\*(.*?)\\*");
public static final Pattern Strike = Pattern.compile("~(.*?)~");

我还发现了如何用我的模式分割文本:

// more to be added
Pattern ptn = Pattern.compile(Italic + "|" + Bold + "|" + Strike);
String[] parts = ptn.split(input);

导致:

"so this will be "
" and this will be "

但是我没有找到方法,却没有丢失模式的信息。

为什么我这样做? 我需要使用javafx.scene.text.TextFlow将纯文本转换为格式化文本,因此我需要找到块并创建javafx.scene.text.Text并应用格式化。

0 个答案:

没有答案