Java 用于为数字和单词设置unicode的正则表达式

Java 用于为数字和单词设置unicode的正则表达式,java,regex,Java,Regex,我有这样一句话: “我11点有20根香蕉,我要21点。” 我需要为它设置一个unicode。 “\u200e”是数字的换行符,“\u200f”是单词的换行符 结果应该是: “\u200fI在\u200f\u200e11:00\u200e\u200f点有\u200f\u200e20\u200e\u200f香蕉,我想要\u200f\u200e21-00\u200e” 如何在java中的字符串上实现这一点 更新 我的句子是希伯来语。 “20:00” 预期结果: “\u200fהיייםשישי\u20

我有这样一句话: “我11点有20根香蕉,我要21点。”

我需要为它设置一个unicode。 “\u200e”是数字的换行符,“\u200f”是单词的换行符

结果应该是:

“\u200fI在\u200f\u200e11:00\u200e\u200f点有\u200f\u200e20\u200e\u200f香蕉,我想要\u200f\u200e21-00\u200e”

如何在java中的字符串上实现这一点

更新

我的句子是希伯来语。 “20:00”

预期结果:
“\u200fהיייםשישי\u200f\u200e20:00\u200e\u200fבׯ\u200f”

您可以执行多个替换

String s = "I have 20 bananas at 11:00 o'clock, and I want 21-00";
s = s.replaceAll("([ ',\\p{Alpha}]+)", "<$1>");
s = s.replaceAll("([-:\\d]+)", "{$1}");
System.out.println(s);
String s=“我11点有20个香蕉,我想要21-00”;
s=s.replaceAll(“([”,\\p{Alpha}]+)”,”);
s=s.replaceAll(“([-:\\d]+)”,“{$1}”);
系统输出打印项次;
印刷品

<I have >{20}< bananas at >{11:00}< o'clock, and I want >{21-00}
{20}<香蕉在>{11:00}<点,我要>{21-00}

为了便于阅读,我使用了不同的符号,但您可以使用unicode字符。
\\p{Alpha}
应接受所有字符集中的字母。

非英语字符中的单词如何?法语单词包装好了吗?中文单词包装好了吗?是-和:和。唯一被认为是数字和/或单词的一部分的非数字事实上,我需要希伯来语单词的非数字。在这种情况下,问题很难得到正确的答案。也许可以编辑它,给出一些更具体的例子。一个例子总是一个糟糕的数字。3到4个经过深思熟虑的例子可以用来回答一个更好的问题。列出预期输出的荣誉,但是
11:00
不应该被分割,或者整个时间会被视为一个数字吗?它可以被分割,但我认为这与不分割它是一样的。也许ReGEX会更简单,如果它被拆分在回答的中间,我注意到你的答案比我的答案要可怕得多。你赢了这一轮+1@Keppil如果第一次替换中有任何数字(即文字),则存在问题。;)字符不是数字。。