繁体   English   中英

如何使用正则表达式删除半冒号?

[英]How to use regex to remove semi colons?

您好,我有这种数据:

a;b;c;d
1;2;3;4
a;g;h;j
f;g;f;d
a;d;8;d

我想修改为具有:

a;bc;d
1;23;4
a;gh;j
f;gf;d
a;d8;d

显然,我有很多行,但是每次半冒号都位于同一位置时。 我试图用notepad ++选择列,并以什么代替半冒号,但该框为灰色...

你有解决方案吗 ?

谢谢 !

按住ALT + SHIFT并使用箭头键选择第二个分号并将其删除。

要么

按住ALT并单击并拖动鼠标以选择另一个分号并删除它。

要么

  • 查找: ^(...)(.)
  • 替换为: \\1

这是我进行工作的在线正则表达式测试仪,您只需将数据替换为示例即可。

Regex : (\w+;)((\w+);(\w+))(;\w+)

演示

  • Ctrl + H
  • 查找内容: ^[^;]+;[^;]+\\K;
  • 替换为: LEAVE EMPTY
  • 检查环绕
  • 检查正则表达式
  • 全部替换

说明:

^           # beginning of string
  [^;]+     # 1 or more non semicolon
  ;         # 1 semi colon
  [^;]+     # 1 or more non semicolon
  \K        # forget all we have seen until this position
  ;         # 1 semi colon

给定示例的结果:

a;bc;d
1;23;4
a;gh;j
f;gf;d
a;d8;d

在此处输入图片说明

如果数据的可能值是小写字母az或数字,则还可以使用捕获组和字符类[a-z0-9]捕获前三个字符,然后再匹配分号。 如果可以有超过1个字符,你可以使用一个量词+对于字符类像[a-z0-9]+

然后替换为第一个捕获组。

找什么

^([a-z0-9];[a-z0-9]);

用。。。来代替

$1

正则表达式演示

或者使用\\K您可以找到^[a-z0-9];[a-z0-9]\\K; 并将替换为空。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM