如何解决删除特定字符后的其余行
例如我有一个具有相同数据格式的文件
DATA102:991n| DATA | Data222
DATA10:22 | DATA | Data222
DATA102:991 | DATA | Data222
DATA10:22 | DATA | Data222
DATA102:991 | DATA | Data222
DATA10:22 | DATA | Data222
我想删除“|”之后的所有内容,例如我想要这个输出
DATA102:991n
DATA10:22
DATA102:991
DATA10:22
DATA102:991
DATA10:22
我如何使用正则表达式实现这一目标?
我试过查找:(.*|).*
然后替换 /1
但它不起作用我想在 |
解决方法
- Ctrl+H
- 查找内容:
^[^|]+\K.*$
- 替换为:
LEAVE EMPTY
- 检查 环绕
- 检查 正则表达式
-
取消勾选
. matches newline
- 全部替换
说明:
^ # beginning of line
[^|]+ # 1 or more any character that is not a pipe
\K # forget all we have seen until this position
.* # 1 or more any character but newline
$ # end of line
屏幕截图(之前):
屏幕截图(之后):
,你可以使用
查找内容: [ \t]*\|.*
替换为:空
参见regex demo。 详情:
-
[ \t]*
- 零个或多个空格或制表符 -
\|
-|
字符 -
.*
- 除换行符以外的零个或多个字符。
如果您有相同格式的数据,另一种选择是使模式更具体地匹配单词字符、冒号和管道。
在替换中使用空字符串。
^\w+:\w+\K\h*\|.*
说明
-
^
字符串开头 -
\w+:\w+
匹配 1 个以上单词字符之间的:
-
\K
清除匹配缓冲区(暂时忘记匹配的内容以保留它) -
\h*\|.*
匹配 0+ 个水平空白字符,|
和要删除的行的其余部分
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。