在行中仅用 $ 替换第一个逗号

Replace First Comma Only with $ in Lines

使用 Notepad++,我有一个制表符分隔的数据集,我想在其中仅用 $ 替换第一个字段中的第一个逗号,而保留该行的其余部分。我打算使用这个新的数据集,使用 Excel 将第一个字段拆分为两个字段。我对 Regex 的基本掌握并没有让我掌握完成它的知识。如何修改此公式以处理第一个字段中的额外逗号?任何帮助将不胜感激。

原文:

Parent, Jessica, 1816-1891--->LIS-BMD-006-06--->D--->102--->Laura Bush's Scrapbook

修改后的行:

Parent$ Jessica, 1816-1891--->LIS-BMD-006-06--->D--->102--->Laura Bush's Scrapbook              

=== 应用原始表达式后,我发现有几行是独一无二的,因为它们不包含分隔 Last_Name 和 First_Names [OR] 的逗号,甚至更频繁地包含分隔 Last_Name 和 [= 的句点36=]。尽管这个数字只有 1% 左右,但在一个 150 万行的文件中,这代表了相当大的搜索量。

常规模式:

Payne, Jeremiah--->(表达式可以正确生成 Payne$Jeremiah--->)

不寻常的模式:

(1) Payne Jeremiah--->(表达式在行中传递,创建一种情况,其中来自字段 3 的数据移回字段 2)

(2) 佩恩。 Jeremiah--->(表达式在行中传递,创建一种情况,其中来自字段 3 的数据移回字段 2)

(3) Payne, Jeremiah, Joseph--->(表达式正确替换了第一个逗号,但可能会根据第二个逗号产生问题)

似乎有必要在第一个 TAB 处创建一个 "barrier" 以更正第一个 TAB 之前的所有变体,因为这将需要作为 TAB 分隔导入回 Exel分割原来的第一个字段。

  • 查找内容:^[^,]*\K,
  • 替换为:$
  • 校验正则表达式

解释:

^        # beginning of line
  [^,]*  # 0 or more any character that is not a comma
  \K     # forget all we have seen until this position
  ,      # a comma