我正在尝试将文字剪切为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
并应用格式化。