在记事本++中使用正则表达式查找十位数字

Raj*_*jiv 2 regex notepad++

我正在尝试替换数据转储中的所有内容,并使用记事本 ++ 正则表达式仅保留该转储中的十位数字。

试图做这样的事情,(?<!\d)0\d{7}(?!\d)但没有运气。

Ro *_* Mi 5

向前

在旧版本的 Notepad++ 中存在无法处理 PCRE 表达式的问题。这个提议的解决方案在 NotePad++ v6.8.8 中进行了测试,但应该适用于 v6.2 之后的任何版本。

描述

([0-9]{10})|.
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

用。。。来代替: $1

该表达式将执行以下操作:

  • 捕获 10 位数字并将它们放入捕获组 1,然后将其重新插入到输出字符串中
  • 不匹配所有内容并将其删除。

如何在记事本++中

来自记事本++

  1. ctrlh进入查找和替换模式

  2. 选择正则表达式选项

  3. 在“查找内容”字段中放置正则表达式

  4. 在“替换为”字段中输入 $1

  5. 点击 Replace all

例子

现场演示

https://regex101.com/r/fZ9vH7/1

源文本

fdsafasfa1234567890zzzzzzz12345
Run Code Online (Sandbox Code Playgroud)

更换后

1234567890
Run Code Online (Sandbox Code Playgroud)

解释

NODE                     EXPLANATION
----------------------------------------------------------------------
  (                        group and capture to \1:
----------------------------------------------------------------------
    [0-9]{10}                any character of: '0' to '9' (10 times)
----------------------------------------------------------------------
  )                        end of \1
----------------------------------------------------------------------
 |                        OR
----------------------------------------------------------------------
  .                        any character except \n
----------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

额外学分

OP 不清楚如何处理超过 10 个字符的数字子串。如果超过 10 位数字的字符串是不可取的并且需要全部删除,则使用此

([0-9]{10})(?![0-9])|[0-9]+|.
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

用。。。来代替: $1

现场演示:https : //regex101.com/r/aS4sN1/1