gpt4 book ai didi

c# - 伪代码的正则表达式 - 修剪间距

转载 作者:太空宇宙 更新时间:2023-11-03 10:29:15 25 4
gpt4 key购买 nike

我这里有一个正则表达式:\[link=["](?<href>[^"]+)["]\](?<title>[^\[]+)\[/link\]并在此处替换字符串:<a href=\"${href}\" target=\"_blank\">${title}</a>

它接受这个字符串 [link="http://www.cnn.com"]CNN Webpage[/link]并将其转换为:<a href="http://www.cnn.com" target="_blank">CNN Webpage</a>

我需要修改它以考虑任一捕获组中的任何前导/尾随空格,并在替换字符串中将它们剪掉。例如:[link="http://www.cnn.com "] CNN Webpage[/link]<a href="http://www.cnn.com" target="_blank">CNN Webpage</a>

正则表达式不是我的强项。任何帮助表示赞赏!

最佳答案

您可以通过添加 \s* 并将贪婪的 [^"]+ 变为惰性的 [^"]+? 来实现:

\[link="\s*(?<href>[^"]+?)\s*"\]\s*(?<title>[^[]+?)\s*\[/link\]
^ ^ ^ ^ ^ ^

参见 demo on regexstorm

代码:

var rgx = new Regex(@"\[link=""\s*(?<href>[^""]+?)\s*""\]\s*(?<title>[^[]+?)\s*\[/link\]");
var str = "[link=\"http://www.cnn.com \"] CNN Webpage[/link]\n[link=\" http://www.cnn.com\"] CNN Webpage[/link]";
var output = rgx.Replace(str, "<a href=\"${href}\" target=\"_blank\">${title}</a>");

enter image description here

关于c# - 伪代码的正则表达式 - 修剪间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30783056/

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