【问题标题】:Regex to find String with square bracket and replace正则表达式查找带方括号的字符串并替换
【发布时间】:2018-11-15 05:16:35
【问题描述】:

我当前的代码是

`
String text= "[School_Teacher_Name] is our new member, So please congratulate [School_Teacher_Name] .";
String tag = "[School_Teacher_Name]";
String value= "Yash Mathur";
String str1 = tag.substring(1, tag.length()-1);
String reg = "/\\["+str1+"\\]/";

if(text.contains(tag)){
   return text.replaceAll(reg, value).trim();
}
else{
   return text;
}`

我在正则表达式方面没有太多经验。我的代码没有替换任何值,请帮帮我。

【问题讨论】:

  • 用什么替换?相同的字符串?
  • 这不是 JavaScript。这是Java。两者是完全不同的编程语言。

标签: java regex replace


【解决方案1】:

如果我没有误解你的要求,那么你可以这样做。 Regex

Java

import java.util.regex.Matcher;
import java.util.regex.Pattern;

final String regex = "\\[(School_Teacher_Name)]";
final String string = "[School_Teacher_Name] is our new member, So please congratulate [School_Teacher_Name] .";
final String subst = "Yash Mathur";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);

// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);

System.out.println("Substitution result: " + result);

Javascript

const regex = /\[(School_Teacher_Name)]/gm;
const str = `[School_Teacher_Name] is our new member, So please congratulate [School_Teacher_Name] .`;
const subst = `Yash Mathur`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);

【讨论】:

  • 感谢分配,它有效,我不需要模式和匹配器,我的 String 类方法 replaceAll 需要正则表达式。
  • @SurendraKumarJaiswal 不客气,很高兴它能以某种方式帮助你
  • 请问为什么在“]”结尾,我们没有使用“//]”?
【解决方案2】:

从您的正则表达式中删除正斜杠。

改变

String reg = "/\\["+str1+"\\]/";

String reg = "\\["+str1+"\\]";

输出

Yash Mathur is our new member, So please congratulate Yash Mathur .

PS - 在这种情况下,最好使用text.replace(tag, value) 而不是text.replaceAll(reg, value)

【讨论】:

    【解决方案3】:

    Template Literals 更容易。

    let teacher = 'Yash Mathur';
    let test = `${teacher} is our new member, so please congratulate ${teacher}.`;
    
    console.log(test);

    【讨论】:

    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多