Regex 如何在记事本++;
我试图使用notepad++上的正则表达式保存一些数据,但找不到正确的正则表达式: 这是我的数据:Regex 如何在记事本++;,regex,notepad++,regex-negation,Regex,Notepad++,Regex Negation,我试图使用notepad++上的正则表达式保存一些数据,但找不到正确的正则表达式: 这是我的数据: Procédure PL/SQL terminée. 950806067 26950073200020 NON EXISTANTE - INSERTION EFFECTUEE - ID ROR : 199348 Procédure PL/SQL terminée. 950808519 38301912200019 NON EXISTANTE - INSERTION EFFECTUEE - I
Procédure PL/SQL terminée.
950806067 26950073200020 NON EXISTANTE - INSERTION EFFECTUEE - ID ROR : 199348
Procédure PL/SQL terminée.
950808519 38301912200019 NON EXISTANTE - INSERTION EFFECTUEE - ID ROR : 199349
嗯,我只想保留“:”后面的数字,即“19…”
实际上,我知道如何删除这个字符串
19\d+$
,但我不知道如何保留它。我尝试了[^19\d+$]
和其他表达式,但没有任何效果。这有点复杂。只需使用一个简单的查找和替换:
查找:
Procédure PL/SQL terminée.(?:\r\n?|\r)(?:\r\n?|\r).*?ID ROR : (\d+)(?:\r\n?|\r)?
$1
209348
199349
替换:
Procédure PL/SQL terminée.(?:\r\n?|\r)(?:\r\n?|\r).*?ID ROR : (\d+)(?:\r\n?|\r)?
$1
209348
199349
输出:
Procédure PL/SQL terminée.(?:\r\n?|\r)(?:\r\n?|\r).*?ID ROR : (\d+)(?:\r\n?|\r)?
$1
209348
199349
您可以通过更换一个正则表达式来实现这一点:
.*\h(19\d+$\R?)\R*|.+\R*
并替换为
\1
详细信息:
-尽可能多的任何0+字符(*\h(19\d+$\R?)\R*
)直到最后一个水平空白(*
),然后在行尾(\h
)后跟$
+一个或多个数字(19
)+可选的换行符(\d+
)(捕获到组1中)后跟0+换行符(\R
)\R*
-或|
-除换行符以外的任何1+字符,后跟0+换行符+\R*
\1
或$1
),该引用将把组1的内容重新插入到结果文本中。其余的将被删除
@TimBiegeleisen:好吧,我只想保留“:”后面的数字,也就是“19…”。无论如何,删除19
,您将在最后一个空格后的字符串末尾获得任何数字。