我有一个多字符串:
我的输入:
var str = `The left lower lung thick parenchymal band as seen on prior
scan remains not hypermetabolic.The posterior left lung base tiny
density as seen on prior scan remains not significantly
hypermetabolic.`;
var element = 'The left lower lung thick parenchymal band as seen on prior scan remains not hypermetabolic';
var newElement = '<p1>The left lower lung thick parenchymal band as seen on prior scan remains not hypermetabolic</p1>';
如何使用正则表达式将原始 str
中的 element
替换为 newElement
?
我的尝试:
str.replace(/[^\\S ]/, ' ').replace(element, newElement)
当我尝试使用正则表达式替换时,我无法忽略换行符并同时替换它们。
预期结果:
var str = `<p1>The left lower lung thick parenchymal band as seen on prior
scan remains not hypermetabolic</p1>.The posterior left lung base tiny
density as seen on prior scan remains not significantly
hypermetabolic.`;
最佳答案
您可以通过更改 element
中的间距来动态创建正则表达式。字符串 \s+
:也将匹配换行符:
var str = `:
The left lower lung thick parenchymal
band as seen on prior scan remains not hypermetabolic. The posterior left
lung base tiny density as seen on prior scan remains not significantly
hypermetabolic.
`;
var element = 'The left lower lung thick parenchymal band as seen on prior scan remains not hypermetabolic';
var newElement = '<p1>The left lower lung thick parenchymal band as seen on prior scan remains not hypermetabolic<p1>';
let regex = RegExp(element.replace(/ +/g, "\\s+"), "g");
str = str.replace(regex, newElement);
console.log(str);
如果您希望替换也保留原始换行符(假设您只想在两个 <p1>
内换行),则使用 $&
newElement
中的反向引用:
var str = `:
The left lower lung thick parenchymal
band as seen on prior scan remains not hypermetabolic. The posterior left
lung base tiny density as seen on prior scan remains not significantly
hypermetabolic.
`;
var element = 'The left lower lung thick parenchymal band as seen on prior scan remains not hypermetabolic';
var newElement = '<p1>$&<p1>';
let regex = RegExp(element.replace(/ +/g, "\\s+"), "g");
str = str.replace(regex, newElement);
console.log(str);
备注:
目前尚不清楚<p1>
是什么代表。如果这应该是一个 XML 标记,那么结束标记应该是 </p1>
与正斜杠。
如果您的element
字符串包含在正则表达式中具有特殊含义的字符,然后确保对它们进行转义。请参阅this Q&A关于如何做到这一点。
关于javascript - 正则表达式字符串替换,同时保留原始换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60149937/