如何在Java中用新数组替换旧数组的正则表达式匹配项?

如何在Java中用新数组替换旧数组的正则表达式匹配项?,java,regex,Java,Regex,我有一个正则表达式模式: '/(?:&#\d{2,4};)|(\d+[\.\d]*)|(?:[a-z](?:[\x00-\x3B\x3D-\x7F]|<\s*[^>]+>)*)|<\s*[^>]+>/i' 好像你想把波斯语数字转换成英语 Regex并不是解决这个问题的最佳解决方案。 看看这个问题: publicstaticvoidmain(字符串…参数){ System.out.println(阿拉伯十进制数); } 专用静态最终字符串阿拉伯语=“\

我有一个正则表达式模式:

'/(?:&#\d{2,4};)|(\d+[\.\d]*)|(?:[a-z](?:[\x00-\x3B\x3D-\x7F]|<\s*[^>]+>)*)|<\s*[^>]+>/i'

好像你想把波斯语数字转换成英语

Regex并不是解决这个问题的最佳解决方案。 看看这个问题:

publicstaticvoidmain(字符串…参数){
System.out.println(阿拉伯十进制数);
}
专用静态最终字符串阿拉伯语=“\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9”;
专用静态字符串阿拉伯十进制(字符串编号){
char[]chars=新字符[number.length()];
对于(int i=0;i=0)
ch=(字符)(索引+0');
chars[i]=ch;
}
返回新字符串(字符);
}

您不需要使用正则表达式或类似的东西。你甚至不需要使用任何特殊的功能

String[] array1 = String[] {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
请仔细查看此阵列。为方便起见,
0
具有索引
0
1
具有索引
1

所以你可以这样做,(伪代码):


就这样。我把细节留给你。

好的。。。你为什么用这个正则表达式来做这个?你想什么时候替换它?@micha我可以使用string.replace()。但我认为使用正则表达式速度更快@莫阿莱米你知道什么是正则表达式吗?你知道这个模式匹配什么吗?你知道什么是正则表达式吗?谢谢。这是很有用的。我觉得这个问题假设了相反的转换:十进制到阿拉伯语。
public static void main(String... args) {
    System.out.println(arabicToDecimal("۴۲"));
}

private static final String arabic = "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9";
private static String arabicToDecimal(String number) {
    char[] chars = new char[number.length()];
    for(int i=0;i<number.length();i++) {
        char ch = number.charAt(i);
        int index = arabic.indexOf(ch);
        if (index >= 0)
            ch = (char) (index + '0');
        chars[i] = ch;
    }
    return new String(chars);
}
String[] array1 = String[] {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
foreach(char in stringToBeReplaced)
{
  if(char == an ASCII digit)
  {
     char = array2[array1.findIndexOf(char)];
  }
}