Regex 仅在第二次出现时使用正则表达式
是否可以仅在第二次出现特定符号时执行我的正则表达式 正在使用的正则表达式:Regex 仅在第二次出现时使用正则表达式,regex,notepad++,Regex,Notepad++,是否可以仅在第二次出现特定符号时执行我的正则表达式 正在使用的正则表达式: @.* 示例数据: Stack@overflow:Stack@overflow 期望输出: Stack@overflow:Stack 正如您在输出中看到的,包括第二次出现@之后的所有内容都已删除,但保留之前的文本除外 我正在使用记事本++或任何允许使用正则表达式的文本编辑器。模式@.*将匹配第一次出现的@,然后将匹配除换行符以外的任何字符,直到字符串结束,点也将匹配以下所有@符号 如果:也应该是边界,则可以使用来匹
@.*
示例数据:
Stack@overflow:Stack@overflow
期望输出:
Stack@overflow:Stack
正如您在输出中看到的,包括第二次出现@之后的所有内容都已删除,但保留之前的文本除外
我正在使用记事本++或任何允许使用正则表达式的文本编辑器。模式@.*将匹配第一次出现的@,然后将匹配除换行符以外的任何字符,直到字符串结束,点也将匹配以下所有@符号
如果:也应该是边界,则可以使用来匹配除@或:
[^@::+匹配除@或以外的任何字符:
@逐字匹配
[^@::+匹配除@或以外的任何字符:
:字面匹配
[^@::+匹配除@或以外的任何字符:
你可以试试
^[^@]*@[^@]*
Ctrl+H
找到什么:^+\K@.+$
替换为:留空
检查环绕
检查正则表达式
取消选中。匹配新行
全部替换
说明:
鉴于:
给定示例的结果:
之前的屏幕截图:
以下操作后的屏幕截图:
在匹配所需数据方面非常有效。我只是不确定如何剪切/保存/提取保存的匹配项。这就是为什么我更喜欢在比赛结束后简单地处理数据。但是,尽管如此,正则表达式仍然有效,我将研究如何保存突出显示的文本。也许这个页面也可能是一个非常好的解决方案,非常感谢我的朋友。@stackandstack:不客气,很高兴它能帮上忙。如果您愿意,您可以投票:
^[^@]*@[^@]*
^ # beginning of line
.+ # 1 or more any character but newline
\K # forget all we have seen until this position
@ # literally @
.+ # 1 or more any character but newline
$ # end of line
Stack@overflow:Stack@overflow
Stack@overflow:Stack