如何在java中以正则表达式模式转义特殊字符?

时间:2016-03-30 19:25:40

标签: java regex

我有一个字符串:

.sec--head

我试图用其他字符串替换Patient: ${ss.patient.howard.firstName} ${ss.patient.howard.lastName} Gender: ${ss.patient.howard.sex} Birthdate: ${ss.patient.howard.dob} ${ss.patient.howard.addressLine1} Phone: (801)546-4765 子字符串,所以它看起来像:

${..}

2 个答案:

答案 0 :(得分:2)

您可以将此正则表达式与捕获组一起使用:

String myString = "Patient:\n${ss.patient.howard.firstName} ${ss.patient.howard.lastName}\nGender: ${ss.patient.howard.sex}\nBirthdate: ${ss.patient.howard.dob}\n${ss.patient.howard.addressLine1}\nPhone: (801)546-4765";
myString = myString.replaceAll("\\$\\{[^}]+?\\.([^.}]+)}", "$1");

System.err.println(myString);

([^.}]+)}之前和最后一个DOT之后的捕获组。

RegEx Demo

<强>输出:

Patient:
firstName lastName
Gender: sex
Birthdate: dob
addressLine1
Phone: (801)546-4765

答案 1 :(得分:0)

您可以尝试搜索${string.string.string}并替换为empty字符串或nothing

正则表达式: \${[a-z]+\.[a-z]+\.[a-z]+\.|}

替换为:替换为空或无字符串。

<强> Regex101 Demo