我有以下字符串
"value=\"\\d{4}((((0[1-9])|(1[0-2]))((0[1-9])|([12]\\d)|(3[01]))?)?|(\\-(((0[1-9])|(1[0-2]))(\\-((0[1-9])|([12]\\d)|(3[01])))?)?)?)d{4}"
我想替换所有出现的
"{" with NCHAR(0x7B)
"}" with NCHAR(0x7D).
"{ }"
之间的内容应保持不变:
Ex: \\d{4} after replacing -> NCHAR(0x7B) 4 NCHAR(0x7D).
有没有办法在 Java 中使用正则表达式来做到这一点?
无论如何,这可以通过使用字符串操作来处理整个字符串。
最佳答案
我认为您的问题不需要正则表达式,因为您想替换每个'{'和每个'}'。你是这个意思吗?或者您是否只想在“\d”后面时替换这些字符?
theString = theString.replace("{", "NCHAR(0x7B)");
theString = theString.replace("}", "NCHAR(0x7D)");
编辑:
示例代码
public class QuickTest {
public static void main(String args[]) {
String theString = "toto \\d{123} 456 789";
theString = theString.replace("{", "NCHAR(0x7B)");
theString = theString.replace("}", "NCHAR(0x7D)");
System.out.println(theString);
}
}
结果
$> java QuickTest
toto \dNCHAR(0x7B)123NCHAR(0x7D) 456 789
关于java - 替换 Java 中的字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19653969/