【问题标题】:Need to replace <p>Are you? [xxxrecipientFirstNamexxx] </p> with <p>Are you? {recipientFirstName} </p>需要更换<p>你是吗? [xxxrecipientFirstNamexxx] </p> 和 <p> 你在吗? {recipientFirstName} </p>
【发布时间】:2020-04-16 01:40:03
【问题描述】:

需要更换

你是吗? [xxxrecipientFirstNamexxx]

你在吗? {recipientFirstName}

。 我尝试使用边界匹配器。但结果不如预期。 我试过下面的代码
"<p>Are you? [xxxrecipientFirstNamexxx] </p>".replaceAll("\\b[[xxxrecipientFirstNamexxx]]\\b", "{recipientFirstName}");

.有人可以帮忙吗?

【问题讨论】:

  • 使用正则表达式:\[xxx(.*)xxx\] 并将其替换为{$1}
  • 它在我的系统上完美运行
  • 使用非贪婪的正则表达式\[xxx(.*?)xxx\],否则如果要替换多个字符串,您可能会遇到问题。

标签: java regex matcher boundary


【解决方案1】:

使用正则表达式查找和替换:

查找:\[xxx(.*)xxx\]

将其替换为{$1}

在python中:

import re

line = re.sub(
           r"\[xxx(.*)xxx\]", 
           "{$1}", 
           line
       )

【讨论】:

  • OP 要求的是 Java 解决方案,而不是 Python。
  • 这个问题是关于 Java 的,而不是你在 python 中的代码,你可以在 Java 中提到"&lt;p&gt;Are you? [xxxrecipientFirstNamexxx] &lt;/p&gt;" .replaceAll("\\[xxx(.*)xxx\\]", "$1")
  • @Toto 是否在pythonjava 中指定REGEX 是否重要?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 2017-12-16
  • 1970-01-01
  • 1970-01-01
  • 2015-08-20
  • 2021-09-06
相关资源
最近更新 更多