gpt4 book ai didi

C# Regex 替换每行中第一次和最后一次出现的双引号

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:38 34 4
gpt4 key购买 nike

多行字符串带有未转义的双引号,防止字符串被解析。

字符串示例:

ns:common.topic.description "1942: A Love Story est un film indien r\u00e9alis\u00e9 par Vidhu Vinod Chopra sorti en salles le 15 juillet 1994. 我在电影中遇见了安尼尔卡普尔、玛尼莎柯伊拉腊等Jackie Shroff。Le long m\u00e9trage est un succ\u00e8s moyen au mais lance la carri\u00e8re de Manisha Koirala."@fr;
ns:common.topic.description "1942: A Love Story to bollywoodzki dramat mi\u0142osny i film akcji zrealizowany w 1993 roku przez Vidhu Vinod Chopra, autora takich film\u00f3w jak Misja w Kaszmirze, czy Eklavya: The Royal Guard.W 罗拉赫g\u0142\u00f3wnych Anil Kapoor i Manisha Koirala', w d​​rugoplanowych Jackie Shroff, Anupam Kher, Danny Denzongpa i Pran. Film by\u0142 hitem jako musical. Premiera jego odby\u0119 ju\u017c po\u015bmierci nagrodzonego potem kompozytora weterana Bollywoodu Rahul Dev Burman. To historia mi\u0142osna. Jej t\u0142em jest rok 1942, w kt\u00f3rym Gandhi has\u0142em "Quit India!"wezwa\u0142 Anglik\u00f3w do odej\u015bcia z kraju po 200-letniej okupacji . Syn s\u0142u\u017c\u0105cego Anglikom Indusa zakochuje si\u0119 w c\u00f3rce bojownika o wolno\u015b\u0107 kraju。"@pl;

我已经尝试用这段代码来替换字符串每一行中第一次和最后一次出现的"(代码很糟糕而且不起作用,只是不知道其他方法做需要做的事):

var freebaseFixedRdfString = Regex.Replace(freebaseFixedRdfString, "\"", delegate(匹配匹配)
{
bool first = match.Index == 1;
bool last = match.NextMatch().Index == 0;
如果(第一个 || 最后一个)
返回 ”\”\”\””;
别的
返回匹配值;
}, RegexOptions.Compiled | RegexOptions.Multiline);

如何使用正则表达式将第一个和最后一个 " 替换为 """

最佳答案

如果要替换开头或最后位置的引号,则不需要正则表达式。但是,在您的示例中,引号不在文本行的初始位置或最后位置。

以下是您可以执行此操作的方法:

var res = Regex.Replace(text, "(?<=^[^\"]*)\"|\"(?=[^\"]*$)", "\"\"\"");

正则表达式使用 lookahead and lookbehind构造以在

时替换引号
  • 行首与此引号之间没有其他引号,或者
  • 在这一行和行尾之间没有其他引号。

Demo.

var text = "Quick \"brown fox jumps \"over\" the lazy\" dog";
var res = Regex.Replace(text, "(?<=^[^\"]*)\"|\"(?=[^\"]*$)", "\"\"\"");

转换

Quick "brown fox jumps "over" the lazy" dog

Quick """brown fox jumps "over" the lazy""" dog

关于C# Regex 替换每行中第一次和最后一次出现的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27088889/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com