Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java字符串正则表达式替换_Java_Regex - Fatal编程技术网

Java字符串正则表达式替换

Java字符串正则表达式替换,java,regex,Java,Regex,我的字符串结构如下 .replaceAll("(?i)L|(?i)I", "1") .replaceAll("(?i)o", "0") .replaceAll("(?i)s", "5") .replaceAll("(?i)z", "2") 字符1-3是大写字母,包括发音符号,如ŇÏÏ 字符4-7将始终是数字 第八是空间 第九个是正斜杠 第十空间 11号以后的是数字 String str1 = "DIW785o / 42";

我的字符串结构如下

  .replaceAll("(?i)L|(?i)I", "1")
        .replaceAll("(?i)o", "0")
        .replaceAll("(?i)s", "5")
        .replaceAll("(?i)z", "2")       
字符1-3是大写字母,包括发音符号,如ŇÏÏ

字符4-7将始终是数字

第八是空间

第九个是正斜杠

第十空间

11号以后的是数字

String str1  = "DIW785o / 42";    // expected result "DIW7850 / 42"
String str2  = "QLR357Ï / 11";    // expected result  "QLR3571 / 11"
String str3  = "UÜÈ7477 / 00";    // expected result  "UÜÈ7477 / 00"
String str4  = "A / P8538 / 28";  //  expected result "AÏP8538 / 28"
String str5  = "CV0875Z / 01";    // expected result "CVO8752 / 01"
String str6  = "SW / 2188 / 38";  // expected result "SWÏ2188 / 38"
我想替换前3个字符,例如

replaceAll("[2]", "Z")
.replaceAll("[0]", "O")
.replaceAll("[5]", "S")
.replaceAll(" // ","Ï)    // replace space forward_slash space with Ï
和位置,数字如下所示

  .replaceAll("(?i)L|(?i)I", "1")
        .replaceAll("(?i)o", "0")
        .replaceAll("(?i)s", "5")
        .replaceAll("(?i)z", "2")       

我想说,没有正则表达式更容易,因为您希望替换字符串,但仅当字符串位于某些位置时:

如果
/
在前7个字符中是SOMWARE,请检查,并将其替换为
Ï

if(input.indexOf(" / ") < 7 ){
    input = input.replaceFirst(" / ", "Ï");
}
然后再把所有的东西放在一起:

String result = letterPart + numberPart + rest;

你能举一些例子吗?现在还不清楚你想要什么和你想做什么。我不太明白你的问题是什么。我添加了输入字符串和它们的预期结果。告诉我们你想在它上面正则化的字符串,比如
\p{Lu}
可能会帮助你使用大写拉丁字母。看见