如何在记事本++上使用正则表达式只保留特定的字符串
How to keep only a particular string using regex on notepad++
我试图在 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 - 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)?
替换:
输出:
209348
199349
您可以通过 1 个正则表达式替换来实现:
.*\h(19\d+$\R?)\R*|.+\R*
并替换为
详情:
.*\h(19\d+$\R?)\R*
- 尽可能多的任意 0+ 个字符 (.*
) 直到最后一个水平空格 (\h
),然后是 19
+ 一个或行尾的更多数字 (\d+
) ($
) + 可选的换行符 (\R?
)(被捕获到第 1 组)后跟 0+ 换行符 ( \R*
)
|
- 或
.+\R*
- 除换行符外的任何 1+ 个字符后跟 0+ 换行符
替换模式仅包含对第 1 组(</code> 或 <code>
)的反向引用,这会将第 1 组的内容重新插入到生成的文本中。其余的将被删除。
我试图在 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 - 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)?
替换:
输出:
209348
199349
您可以通过 1 个正则表达式替换来实现:
.*\h(19\d+$\R?)\R*|.+\R*
并替换为
详情:
.*\h(19\d+$\R?)\R*
- 尽可能多的任意 0+ 个字符 (.*
) 直到最后一个水平空格 (\h
),然后是19
+ 一个或行尾的更多数字 (\d+
) ($
) + 可选的换行符 (\R?
)(被捕获到第 1 组)后跟 0+ 换行符 (\R*
)|
- 或.+\R*
- 除换行符外的任何 1+ 个字符后跟 0+ 换行符
替换模式仅包含对第 1 组(</code> 或 <code>
)的反向引用,这会将第 1 组的内容重新插入到生成的文本中。其余的将被删除。