正则表达式 - 保留所有长度为10-13位的数字

时间:2016-07-27 20:57:49

标签: regex notepad++

搜索regex,其中保留长度为10-13位的所有数字,并在记事本++中删除其余数字

我的正则表达式不起作用 [^ \ d {10,13}]

它也用逗号查找数字:(

4 个答案:

答案 0 :(得分:1)

要匹配正好3位数的数字:

\b(\d{1,9}|\d{14,})\b

答案 1 :(得分:1)

搜索

^(?:.*?(\d{10,13}).*|.*)$

并替换为

\1

你只保留10到13位数字(和空行)。

删除搜索

的空行
^\n

并替换为空。

查看实际操作:RegEx101

解决@WiktorStribiżew的评论:依赖于被追踪的数字总是被白色空间包围(已经用OP检查过 - 但不是针对潜在的情况,线条(有效地)仅包含数字)搜索表达式可能是调整为

^(?:.*\s(\d{10,13})\s.*|.*)$

仍然替换为

\1

正确处理包含数字字符串的逗号:RegEx101

顺便说一下:

[^\d{10,13}]

是一个字符类,匹配任何内容,

  • 一个数字,或
  • “{10,3}”中的任何字符(不带引号,但包括花括号)。

请评论是否需要调整/进一步详细说明。

答案 2 :(得分:1)

你可以找到这样的所有10-13长度独立数字

(?<!\d)\d{10,13}(?!\d)

您所做的事由您决定。

答案 3 :(得分:0)

我不知道记事本是如何工作的,但我认为这是你正在寻找的正则表达式:^([0-9]){10,13} $

创建/测试正则表达式的好页面:http://regexr.com/