我有一个问题,我有一些类似于这样的字符串
تاپقان بولۇپ، توپلامغا 1998 – يىلىدىن 2009يىلىغىچە شىنجاڭ
是的,它们是用维吾尔语书写的,就像阿拉伯语一样,而我不懂维吾尔语。
现在我需要按空格、符号和数字将它们分开。我尝试使用Python,并且我可以得到这个结果。
تاپقان بولۇپ ، توپلامغا 1998 – يىلىدىن 2009 يىلىغىچە شىنجاڭ
如果我忽略了很多空格,那么结果就是我想要的。而Python代码如下:
def re_str(matched):
replace_str = matched.group('symbol')
return ' ' + replace_str + " "
# test is the string above
print(re.sub('(?P<symbol>\W)', re_str, re.sub('(?P<symbol>\d+)', re_str, test)))
现在的问题是:我想用Java实现这个效果,但是我不知道怎么做?请帮助我。 我尝试使用Java,但是它没有起作用。
String pattern = "(\\d+)|([\\p{P}\\p{S}]+)|\\W";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(test);
Pattern
和Matcher
类。与它们相关的Javadocs应该已经包含了很多信息。 - ThomasString[] split(CharSequence)
。还有一个有用的splitAsString
方法,你可能想要研究一下。或者,你可以直接调用String
类的split
方法:它接受一个正则表达式作为输入参数。 - M. Prokhorov