需要从c#中的字符串中提取列名

2024-04-09

我正在尝试从 SQL 计算字符串中提取所有列名称。 数据保存在数据表的单元格中,并由列周围的方括号确定。 我可以提取 [*] 的每个实例,但刚刚注意到我有一个问题。有些列具有表名称,有些列具有架构和表名称。 例如。 [列] [表].列] 或 [架构].[表].[列] 我如何修改此代码以提取第一个“[”和最后一个“]”之间不带句点的所有内容?

以下代码填充 datatable1,然后通读以查找包含列名称 ([*]) 的任何“column_calculation_formula”单元格,并将其添加到准备上传的新数据表中的行副本中。 我尝试将新行追加到数据表中,但这引起了问题。

DataTable WBC_DTable = PopulateDataTable();
DataTable WBC_DTable2 = new DTSetup.WBDataTablesSetup().WBDSColumnsSetup();
Regex regex = new Regex(@"\[(.*?)\]");

long Rows = WBC_DTable.Rows.Count;
foreach (DataRow row in WBC_DTable.Rows)
{
    string InputString = row["column_calculation_formula"].ToString();
    MatchCollection matches = regex.Matches(InputString);
    List<string> Output = new List<string>();
    foreach (Match m in matches)
    {
        Output.Add(m.Value);
        TextBoxAppend("Before: " + m.Value);
    }
    List<string> distinct = Output.Distinct().ToList();
    foreach (string value in distinct)
    {
        TextBoxAppend("After: " + value);

        if (distinct.Count() > 0)
        {
            DataRow NewRow = WBC_DTable2.NewRow();
            NewRow.ItemArray = row.ItemArray;
            NewRow["column_datatype"] = "SubColumn";
            NewRow["column_name"] = value;
            WBC_DTable2.Rows.Add(NewRow);
        }
    }
    DataRow NewRow2 = WBC_DTable2.NewRow();
    NewRow2.ItemArray = row.ItemArray;
    WBC_DTable2.Rows.Add(NewRow2);
}

相当有信心这应该只是 Regex 调用的改变,但我对 Regex 的了解不够,无法做到这一点。

任何帮助将不胜感激。


您可以使用

var res = Regex.Matches(s, @"\[.*?](?!\.)")
    .Cast<Match>().
    Select(x => x.Value)
    .ToList()

.

Details

  • \[ - a literal [
    • .*?- 除了换行符之外的任何 0+ 个字符,尽可能少
  • ](?!\.) - a ]char 后面没有紧跟着 a..
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要从c#中的字符串中提取列名 的相关文章

  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • 代码 GetAsyncKeyState(VK_SHIFT) & 0x8000 中的这些数字是什么?它们是必不可少的吗?

    我试图在按下按键的简单动作中找到这些数字及其含义的任何逻辑解释 GetAsyncKeyState VK SHIFT 0x8000 可以使用哪些其他值来代替0x8000它们与按键有什么关系 GetAsyncKeyState 根据文档返回 如果
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 为什么在 WebApi 上下文中在 using 块中使用 HttpClient 是错误的?

    那么 问题是为什么在 using 块中使用 HttpClient 是错误的 但在 WebApi 上下文中呢 我一直在读这篇文章不要阻止异步代码 https blog stephencleary com 2012 07 dont block
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 正则表达式库基准

    我最近一直想知道正则表达式实现的性能 并且很难想出很多有用的信息 它很容易对浏览器 javascript 正则表达式性能进行基准测试 网上有很多工具 Chrome 和 Opera 中的 javascript 正则表达式实现几乎摧毁了所有其他
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 在 Windows Phone silverlight 8.1 上接收 WNS 推送通知

    我有 Windows Phone 8 1 silverlight 应用程序 我想使用新框架 WNS 接收通知 我在 package appxmanifest 中有
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析
  • 如何使用 C++11 using 语法键入定义函数指针?

    我想写这个 typedef void FunctionPtr using using 我该怎么做呢 它具有类似的语法 只不过您从指针中删除了标识符 using FunctionPtr void 这是一个Example http ideone

随机推荐

  • 为什么这个未使用的 self.hash 方法会导致“无法将字符串转换为整数”错误?

    我正在跑过Lynda Rails 3 教程 http www lynda com Ruby on Rails 3 tutorials essential training 55960 2 html 在某一时刻 在名为 access cont
  • 如何检测重复数据?

    我有一个简单的联系人数据库 但用户输入重复数据时遇到问题 我已经实现了一个简单的数据比较 但不幸的是 输入的重复数据并不完全相同 例如 姓名拼写错误 或者一个人输入 Bill Smith 另一个人输入 William Smith 表示同一个
  • 使用 $(function 等启动 javascript 代码

    我正在研究 Backbone 和来自的待办事项示例应用程序http todomvc com http todomvc com 我注意到有 3 种方法可以在文件中启动代码 function code here function code he
  • Swift 3 LPCM 录音机 |错误:kAudioFileInvalidPacketOffsetError

    下面的录音机仅在第一次时有效 如果您尝试第二次录音 则在尝试 AudioFileWritePackets 时会出现错误 kAudioFileInvalidPacketOffsetError 知道为什么会发生这种情况吗 先感谢您 存储库位于此
  • Spring & JPA:按需创建数据库模式和表

    JPA Spring 是否有可能在运行时创建 删除具有自定义名称和相应表 由 Entity 注释给出 的数据库模式 例如当用户按下按钮时 我只知道关于javax persistence schema generation属性 它们在我的应用
  • 带圆角和锯齿状弧形边框的正方形

    我想知道是否可以用纯 CSS 制作一个带有圆角和缩进边框的正方形 目前我有这个 custom square position relative display block width 75px height 75px border 2px
  • goimports 需要忽略供应商包

    我正在尝试实施dep在我的项目中 这一切都运行良好 但它还添加了一个供应商目录 我现在需要更新我的工具以忽略此目录 否则我提供的软件包将被修改 或者我会收到警告误报 我目前正在使用以下工具 goimports w go vet go lin
  • 将 DataGridView 导出到 Excel 的简单方法

    我正在尝试将 DataGridView 数据复制到 Excel 并且使用以下代码 public static void ExportToExcel DataGridView dgView Microsoft Office Interop E
  • 如何防止对象被垃圾收集?

    如何防止对象被垃圾收集 是否有任何通过最终确定或幻像引用或任何其他方法的方法 我在一次采访中被问到这个问题 面试官建议finalize 可以使用 保留一个参考 如果您的对象过早被收集 则表明您的应用程序设计中存在错误 垃圾收集器仅收集应用程
  • HTML5 Canvas 沿着带有坐标的路径拖动图像

    是否可以拥有一个坐标数组并仅沿着这些坐标拖放图像 我想只使用 javascript 而不使用 javascript 库 我一直在摸不着头脑 一直在谷歌上搜索这个问题 但找不到如何做到这一点或者是否可能 Demo http jsfiddle
  • “此列列表没有匹配的唯一键或主键”。但主键确实存在

    所以我正在练习一些 sql 编码来进行测试 但我无法获得外键来引用主键 这是不起作用的表 CREATE TABLE ASSIGNMENT ASSIGN ID NUMBER 2 NOT NULL START DATE DATE END DAT
  • MYSQL:使用 union 将两个表合并为一个表

    我必须用另外两个表制作一个表 并使用联合 有效的查询是 SELECT FROM tabel1 UNION SELECT FROM tabel2 现在我要做的就是将此结果 数据 放入表3 我已经拥有的表 其列与表1和表2中的列相同 谁能帮我
  • Django Rest 框架 JWT 和自定义身份验证后端

    我有一个自定义用户模型并创建了一个自定义身份验证后端 我在用Django 休息框架 http www django rest framework org and Django 休息框架 JWT http getblimp github io
  • 让 GNU C 编译器在 iOS 6.x 上运行

    我有一台越狱 evasi0n 第四代 iPad 带有 iOS 6 1 固件 通过 Cydia 我安装了移动终端 版本 520 2 然后 遵循this http iklive org cc compiling on ios 教程中 我已经下载
  • 子类需要访问抽象超类的私有属性

    我有一个抽象 java 类 它实现了它的几个方法 但没有实现其他方法 在它实现的方法中 它使用私有属性变量 使用的变量也需要在子类中使用 据我所知 我的选择是 在子类和超类中都声明私有变量 将抽象类中当前实现的方法的实现推迟到子类中 还有其
  • PInvoke 'class' 与通过引用传递 'struct'

    当我用谷歌搜索时 我看到帖子说传递 C class与通过相同struct通过引用 即ref SomeStruct name参数 到 C API 同时使用 PInvoke 这是一篇帖子C PInvoke 结构与类访问冲突 https stac
  • jQuery 调用 find 函数在 Firefox 中给出“格式不正确”错误

    我正在从 XML 文件中检索数据 然后使用 jQuery find 函数来访问该数据 但是 在 Firefox 版本 37 0 2 中 我在 JavaScript 控制台中收到以下错误 Error Unable to run script
  • Matplotlib 直方图错位且缺少条形

    我有大量数据文件 因此使用 numpy 直方图 与 matplotlib 中使用的相同 手动生成直方图并更新它们 然而 在绘图时 我感觉图表发生了变化 这是我用来批量手动创建和更新直方图的代码 请注意 所有直方图共享相同的箱 temp np
  • 如何添加管道 |在我的 linux find -exec 命令中?

    这不起作用 这可以在find中完成吗 或者我需要 xargs 吗 find name file follow type f exec zcat agrep dEOE grep 解决方案很简单 通过 sh 执行 exec sh c zcat
  • 需要从c#中的字符串中提取列名

    我正在尝试从 SQL 计算字符串中提取所有列名称 数据保存在数据表的单元格中 并由列周围的方括号确定 我可以提取 的每个实例 但刚刚注意到我有一个问题 有些列具有表名称 有些列具有架构和表名称 例如 列 表 列 或 架构 表 列 我如何修改