【问题标题】:Regex notepad++ replace first character only正则表达式记事本++ 仅替换第一个字符
【发布时间】:2017-06-07 16:37:30
【问题描述】:

我已经在这里查看了一些类似问题的示例,这些示例是关于如何在数据中查找第一个字符以替换为另一个字符。这是我们数据中的列分隔符,我需要更改它。

其中一个示例确实设法替换了第一个逗号,但是在设置 replace all 时它会循环到开头并开始替换第二列中实际数据中的逗号,这是我不想要的。

第一列数据中没有任何其他字符需要担心,因为它是 ID 列。我需要构建一个正则表达式来识别第一个逗号,然后用一些东西来替换它,但不要循环到数据的开头并替换更多的逗号。

我尝试从小处着手,然后逐步建立。我从这个开始,它找到每行中的第一个逗号,但也会突出显示它之前的字符,我认为这需要调整。

([^,]);

我还没有找到关于我想要做什么的帖子或帮助,所以我试图将来自不同主题的各种示例放在一起,这以一种方式工作,但添加了我不想要的额外功能。

非常感谢任何有关如何执行此操作的帮助或建议。

谢谢

安德鲁

【问题讨论】:

  • 您的意思是要在单击全部替换时替换文档中的第一个,?看起来^([^,]*),([\s\S]*) --> $1$2 应该可以工作。
  • 或者,,(.*) --> $1 加上 . 匹配换行符

标签: regex replace notepad++ comma


【解决方案1】:

如果您将([^,]); 与全部替换一起使用,它将删除除, 和随后的; 之外的所有字符,所有这些出现。

如果您只想匹配第一个 ,,请启用 . 匹配换行符,然后使用

,(.*)

正则表达式模式替换为$1(如果要删除)或:$1(例如,替换为冒号)。如果您不想弄乱 UI 中的选项,可以将 DOTALL 修饰符作为内联选项传递给模式:(?s),(.*)

【讨论】:

    猜你喜欢
    • 2013-09-06
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多