基于用户的字符串模板

2023-12-05

我有一个用户选择的字符串模板,我需要采用该模板并填写所需的信息。

string templateString = "%author% - %title% (%year%)";

我可以执行 .Contains() 和 .Replace(),但是模板可能有大量输入或少量输入,例如:

string templateString = "%author% - %publisher% - %isbn% - %asin% - %title% (%year%)";

因此,为用户可以选择的每个选项执行 .Contains() 和 .Replace() 似乎效率低下,我希望做的是找到一种更好的方法来用请求的信息填充 templateString 。任何帮助将不胜感激。这将用于数千种物品。

该程序本身会获取用户输入的所有文件(电子书,我们中的一些人有数千个),并且它会根据单个用户的模板重命名每本电子书,并使用从电子书中抓取的元数据填充信息。


我在其他地方发布了这个,但看起来这对于您的情况来说是一个很好的方法(我自己也这样做过)。基本上,您使用正则表达式替换为匹配评估器回调:

regex = new Regex(@"\%(?<value>.*?)\%", 
    RegexOptions.CultureInvariant | RegexOptions.ExplicitCapture);

string replacedText = regex.Replace(<text>, 
    new MatchEvaluator(this.EvaluateMatchCallback));

那么你的回调将如下所示:

private string EvaluateMatchCallback(Match match) {
    string templateInsert = match.Groups["value"].Value;
    // or whatever
    string replacedText = GetReplacementTextBasedOnTemplateValue(templateInsert);
    return replacedText;
}

Where GetReplacementTextBasedOnTemplateValue是一种方法,它将返回与正则表达式匹配的占位符相对应的任何值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于用户的字符串模板 的相关文章

  • 非模板函数中的尾随返回类型[重复]

    这个问题在这里已经有答案了 我见过有人使用以下语法来实现函数 auto get next gt int 代替 int get next 我理解两者 并且我知道尾随返回类型语法对于使用 decltype 的模板代码很有用 就我个人而言 我会避
  • SOAP Web 服务:多台服务器,一个接口

    我有一个场景 需要任意数量的服务器来提供相同的 SOAP Web 服务 我想生成一组代理类 并能够为它们提供一个位置 以便在运行时将它们指向不同的服务器 不幸的是 看起来好像wsdl port节点 子节点wsdl service 要求对特定
  • 来自 double 的 static_cast 可以优化分配给 double 吗?

    我偶然发现了一个我认为不必要的功能 并且通常让我感到害怕 float coerceToFloat double x volatile float y static cast
  • 如何使用T4从一个模板同时生成两个文件?

    我遇到的情况是 我需要生成两个 CSharp 代码文件 它们的代码几乎相同 但方法的输入和输出类型的命名空间不同 事实上 每个文件都针对特定国家 地区 并且类型来自特定国家 地区的 WSDL 我正在围绕服务编写一些包装器 逻辑完全相同 但从
  • 如何在 Linux 上重新实现(或包装)系统调用函数?

    假设我想完全接管 open 系统调用 也许要包装实际的系统调用并执行一些日志记录 一种方法是使用 LD PRELOAD http scaryreasoner wordpress com 2007 11 17 using ld preload
  • 大量互斥体对性能的影响

    假设我有一个包含 1 000 000 个元素的数组 以及多个工作线程 每个线程都操作该数组中的数据 工作线程可能会使用新数据更新已填充的元素 但每个操作仅限于单个数组元素 并且独立于任何其他元素的值 使用单个互斥锁来保护整个数组显然会导致高
  • ASP.NET - Crystal Report Viewer 打印按钮在 ASP.NET 中不起作用

    我正在使用 Visual Studio 2008 但我遇到了水晶报告问题 当我单击打印按钮时 它会将我带到弹出窗口 但未找到页面 弹出的网址是 http localhost aspnet client System Web 2 0 5072
  • 如何在 C++ 中正确使用 cin.fail()

    我正在编写一个程序 从用户那里获取整数输入cin gt gt iUserSel 如果用户输入一个字母 程序就会进入无限循环 我试图用下面的代码来阻止这种情况 但程序进入无限循环并打印出 错误 输入 我该如何修复我的程序 cin gt gt
  • 当我尝试传递临时地址作为参数时,它是一个 UB 吗?

    对于以下 C 代码 include
  • 如何从 Powerpoint 2010 导出电影?

    如何使用 MS Office PIA 主互操作程序集 或其他方式以编程方式将嵌入视频从 powerpoint 2010 导出到外部文件 在演示文稿中嵌入视频是 Powerpoint 2010 中的一项新功能 我找不到解决方案 PPTX 文件
  • C# 可以为控制台应用程序部分类“程序”类吗?

    我想知道是否可以将为任何控制台应用程序创建的默认 程序 类更改为部分类 我想这样做是因为我想要更好的组织 而不是将所有方法都放在按区域分类的 1 个文件中 对我来说 将某些方法类别放在单独的文件中会更有意义 我对分部类的理解是 它是多个文件
  • main.cpp 是必需的吗?

    我试图编译一个程序cmake 我最终删除了我的main cpp文件 我刚刚将其复合到另一个包含我的项目名称的文件中 即 我刚刚将主函数剪切并粘贴到该文件中 问题是我有一个main cpp未发现错误 不确定是否在C 一个名为main cpp是
  • fgets溢出后如何清除输入缓冲区?

    当输入字符串超出其预定义限制时 我遇到了 fgets 的小问题 以下面的例子为例 for index 0 index lt max index printf Enter the d string index 1 if fgets input
  • 为什么这个位图图像在加载后会改变大小?

    快速提问 我有这个1000 1000位图图像 我使用这个例程来加载它 private BitmapSource initialBitmap new BitmapImage new Uri C Users Desktop Original b
  • C++网络序列化[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一种将 C 数据包序列化为网络流的解决方案 我在这里看到很多帖子提到人们 ACE 谷歌协议缓
  • Clang 5.0 上的 vsprintf 和 vsnprintf [-Wformat-nonliteral] 警告

    我有这段代码 static void err doit int errnoflag int level const char fmt va list ap int errno save unsigned long n char buf MA
  • 使用未命名命名空间而不是静态命名空间

    我可以假设在未命名命名空间中声明的对象相当于static namespace int x 1 static int x 2 FWIK 在这两种情况下 x将具有静态存储期限和内部链接 声明为的对象的所有规则也是如此static适用于未命名名称
  • 为什么我可以在另一个函数中定义一个函数?

    请参阅下面的代码 我在另一个函数中定义了一个函数 void test1 void void test2 void printf test2 n printf test1 n int main void test1 return 0 这个用法
  • 为什么存在系统调用

    我一直在阅读有关系统调用及其在 Linux 中如何工作的内容 我还有更多的阅读要做 但我读过的一件事都没有回答 那就是 为什么我们需要系统调用 我知道系统调用是用户空间程序要求内核执行某些操作的请求 但我的问题基本上是 为什么用户空间程序本
  • 尝试后终于没有被调用

    由于某种原因 在我的控制台应用程序中 我无法运行我的finally 块 我编写这段代码是为了测试finally块是如何工作的 所以它非常简单 static void Main int i 0 try int j 1 i Generate a

随机推荐

  • 使用具有 PhoneStateListener 功能的 BroadcastReceiver

    我正在尝试制作一个 MissCall 应用程序 当收到未接来电时 该应用程序会自动发送消息 我已经完成了我的应用程序并且运行良好 这是完整的场景 问题 该应用程序运行良好但是当我重新启动设备时 应用程序无法运行 它仅在我启动我的应用程序至少
  • 是否可以将占位符文本从头到尾转换?

    我想在已知宽度的文本输入中从头到尾转换单行动态占位符文本 隐藏溢出 现在我知道对于常规容器 div 我可以利用转换来转换正确的长度 因此 对于长度为 100px 的容器 我可以使用以下命令过渡到文本末尾 transform translat
  • Swift 2 - 将数组分成带有从 A 到 Z 的键的字典

    例如 我有一个数组 Apple Banana Blueberry Eggplant 我想将其转换为字典 如下所示 A Apple B Banana Blueberry C D E Eggplant 我在 Xcode 7 beta 4 上使用
  • ArrayList并发访问

    我知道ArrayList不是线程安全的 但我不确定这的确切含义 如果是ThreadA and ThreadB两者都使用ArrayList 哪些情况会导致问题并需要同步 两个线程同时读取相同的索引 ThreadA替换一个元素ThreadB正在
  • 如何将 plone 的内容块插入到重氮主题中

    我在 Plone 4 1 中使用重氮 当前为 plone app theming 1 0b1 r48205 我想完全使用 Plone 的 html 作为搜索小部件 除了我想替换
  • 当函数返回由模板类型和另一个类型组成的类型时,模板参数推导

    标题很难用文字表达 但这是我试图在不可编译的代码中实现的目标 template
  • 如何在服务器上设置 SvelteKit 存储并保持反应性?

    我正在尝试构建一台使用 setInterval 回调更改服务器上数据的机器 在理想的情况下 服务器间歇性地检查数据并将其保存在缓存中 前端组件使用该缓存将其呈现在浏览器中 现在我的 server ts 文件says它会定期更改数据并将其添加
  • 使用 Gluon ShareService 共享多个文件(图像和 txt)

    我们想知道如何使用 Gluon ShareService 共享多个文件 图像和 txt 文件 特别是如何与 PictureService 共享先前拍摄并存储 在图库中 的图像 但我们需要先创建一个包含路径和图像名称的文件 不幸的是 Pict
  • 如何关闭由邮件合并启动的 Excel 实例

    如何关闭由邮件合并启动的 Excel 实例 在启动器内运行的此代码无法访问通过 DDE 运行的 Excel For i 1 To Workbooks Count MsgBox here Workbooks i Name If Workboo
  • 为什么父类的受保护变量为空?

    我有一个受保护的变量Father类中 该变量的内容将发生变化Father类 但我需要在子类中使用这个变量 即 class Father protected body function construct this gt body test
  • 使用 urllib 删除 python 中的换行符

    我正在使用Python 3 x 使用时urllib request要下载网页 我得到了很多 n之间 我正在尝试使用论坛其他线程中给出的方法删除它 但我无法这样做 我用过strip 函数和replace 功能 但没有运气 我在 eclipse
  • 如何创建以当前时间命名的文件?

    我想在 log 目录下创建一系列文件 每个文件根据执行时间命名 在每个文件中 我想为我的程序存储一些日志信息 例如起作用的函数原型等 通常我使用 fopen log a 的硬方法 这不是为了这个目的 我只是写了一个时间戳函数 char ti
  • 无法将文件 .mdf 作为数据库附加

    我是 MVC 技术的新手 正在阅读培训材料 并遇到了以下实体框架错误消息 在这里 我尝试从 SQL Server Compact 数据库获取一条记录 但出现错误EmployeeController步骤中的类 Employee employe
  • Java 8 使用Optional 避免空指针检查

    是否可以编写这样的内容并避免检查元素是否不为空并且集合是否不为空 response getBody getRequestInformation getRequestParameters get 0 getProductInstances g
  • 计算数据框列中的单词数

    我有一个数据框 第一列中有句子 我想计算其中的单词数 Input Foo bar bar example lalala foo example sentence foo Output foo 3 bar 2 example 2 lalala
  • 使用 Thread.sleep 让 UI 线程等待

    我用 C 为 WP7 编写了这段代码 public void btn handler object sender EventArgs args Button btn Pressed Button sender ImageBrush br n
  • SQLite 片段函数实现不会将 TextView 中的文本格式化为 HTML

    我正在使用 SQLite 全文搜索实现搜索功能 我想像 Google 搜索一样用粗体查询文本显示结果 我已经实现了类似下面的代码 但它显示没有任何 HTML 格式的纯文本虽然将视图绑定到光标适配器并设置文本格式TextView 我无法弄清楚
  • 简化重复的 LESS

    我正在为 WordPress 网络创建一个主题系统 该系统支持多种布局主题 可以支持各种大学的配色方案 为此 我定期编译一个带有学校特定变量的 LESS 文件 使用 lessphp 并实质上将其用作主题中的辅助类库 每所学校都有 3 种颜色
  • Facebook iOS SDK Poke

    是否可以使用 iOS 版 Facebook SDK 来 戳 Facebook 好友 我尝试过在线 API 浏览器并筛选文档 但找不到公共 API 有谁知道我可以通过 iOS 应用程序发出 Graph API 请求来戳 Facebook 好友
  • 基于用户的字符串模板

    我有一个用户选择的字符串模板 我需要采用该模板并填写所需的信息 string templateString author title year 我可以执行 Contains 和 Replace 但是模板可能有大量输入或少量输入 例如 str