我想要实现的目标?
- >替换字符串中与正则表达式不匹配的单词,并将其替换为其他文本。
虽然我对正则表达式不太好,所以如果你帮助我会很棒。
例如:
var str = "New York";
alert(str.replace(/some_magical_reg_ex/, "Jersey"));
所以我想" New",并取代" York"用别的东西。结果应该是"新泽西&#34 ;;
我尝试了什么?
https://regex101.com/r/fQ9fN8/3关于这一点,我想强调“安吉尔”这个词,所以我可以用其他词来代替它。
注意示例中的最后一行。给出的输入是' los angeles',但没有突出显示/匹配。
如果您认为我遗漏了任何意见,请告诉我,我会相应更新问题。
修改 让我试着解释一下。
我有一个下拉列表,显示位置。因此,如果用户输入“Lo'”,它将显示以下选项。路易斯安那州,洛杉矶等(以' Lo'开头)。
因此,在此列表中,我需要为文本的其余部分应用<b></b>
标记。
即当用户输入&#39; Lo&#39;,显示
所以在str.replace(/some_magical_reg_ex/, <b>unmatched_text</b>)
str =&#39; Lo&#39; (用户输入)和 unmatched_text =&#39; uisiana&#39;或者是安吉利斯&#39;
答案 0 :(得分:1)
这是匹配文本后跟用户输入的正则表达式和非正则表达式方式:
public static void main(String[] args) {
String input[] = { "A-B-C-D", "A-B-C-D-E-F-E-G", "AAAA-BBB-CCC-DD-EE", "BB-CC-DD-EE" };
for (String str : input) {
String output = str.replaceAll("(.*)-([\\w]+?)-([\\w]+?)-([\\w]+?)$", "$1 , $2 , $3 , $4");
System.out.println("[" + str + "]\t\t\t=> [" + output + "]");
}
}
答案 1 :(得分:0)
如果您想匹配特定单词后面的单词,请使用正面的lookbehind:
(?<=New )\w+
这将匹配“新泽西”中的“泽西岛”。
查看您提供的示例,看起来您希望匹配以特定单词开头的行的其余部分。我会用这个:
^(?<=los ).*
答案 2 :(得分:0)
您可以使用:
/^Lo(.*)/
请参阅regex demo
替换为Lo<b>$1</b>
。
以下是一种在动态模式中使用它的方法:
var knownWord = 'Lo';
var subst = knownWord + '<b>$1</b>';
var re = RegExp("^" + knownWord + "(.*)", "i");
var result = 'Los Angeles'.replace(re, subst);
document.body.innerHTML = result;