Regex найти строку с квадратной скобкой и заменить - PullRequest
0 голосов
/ 15 ноября 2018

мой текущий код

`
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;
}`

У меня нет большого опыта в регулярных выражениях. мой код не заменяет никакое значение, пожалуйста, помогите мне.

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

Если я не правильно понял ваши требования , вы можете сделать это так. 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);
0 голосов
/ 15 ноября 2018

Это намного проще с литералами шаблонов .

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

console.log(test);
0 голосов
/ 15 ноября 2018

Удалите косую черту из регулярного выражения.

Изменение

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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...