Regex 删除10位数字正则表达式后的所有内容

Regex 删除10位数字正则表达式后的所有内容,regex,Regex,我有数百万行,如下所示: 0032 0001 0020413300 0001 BLUE OVERCOAT CC P 我使用以下方法删除了之前的文本: .*(?=\d{10}) 要在尝试此操作后删除所有内容,请执行以下操作: \d{10}.* 但它选择的是数字&之后的一切。我如何留下号码并在之后选择所有内容?使用捕获组: (\d{10}).* 并替换为$1。

我有数百万行,如下所示:

0032       0001        0020413300               0001           BLUE OVERCOAT               CC                 P
我使用以下方法删除了之前的文本:

.*(?=\d{10})
要在尝试此操作后删除所有内容,请执行以下操作:

\d{10}.*
但它选择的是数字&之后的一切。我如何留下号码并在之后选择所有内容?

使用捕获组:

(\d{10}).*
并替换为
$1
。看

还考虑使用单词边界来匹配10位数字作为一个整体词:

\b(\d{10})\b.*


如果您使用的是记事本++,则可以使用
\K
将匹配的文本放到其位置:
\b\d{10}\b\K.*
并替换为空字符串。或者一个lookback:
(?仍然选择数字,我需要保留数字。编辑:K.*有效,谢谢。所有的解决方案都将保留数字。演示添加到答案中。您可以将所有(组后和组前)匹配为。*(\d{10}).*并替换为$1。@mquantin:这将保留没有10位数字的行。如果任务是删除除10位数字以外的所有数字,我将建议另一种解决方案(特别是对于Notepad++)。