我收到了第三部分的文本文件,其中包含我需要删除的ID。该文件还包含许多我不需要的其他数据,并且没有分隔或固定宽度格式。所以我想知道是否有办法使用Notepad ++和regex删除除ID号码以外的所有内容? ID号的格式是长度为8位,必须以0开头。
示例:00000213,000323234,02456343
答案 0 :(得分:2)
您想要保留的数字可以像这样匹配:
(?<!\d)0\d{7}(?!\d)
lookarounds确保您获得8位数而不是更多数字。
现在,您可以简单地匹配所有其他字符,直到您找到其中一个字符,然后删除其他所有字符。此外,您需要考虑在最后一个数字之后删除字符的情况,直到字符串的结尾:
.*?((?<!\d)0\d{7}(?!\d)|\Z)
并替换为$1\t
以写回您不想删除的号码以及其后的标签,这样您在删除其他所有内容后仍然可以区分它们(感谢后者的Sniffer)建议)。开头的?
非常重要,以便您尽可能少地匹配(如果之后有另一个号码,则不会传递第一个号码)。确保激活dot matches newline
选项。并确保将Notepad ++更新为版本6.
答案 1 :(得分:0)
\D
替换为[ ]
以删除非数字文字[ ]+
替换为[ ]
以折叠多余的空格。现在你有每个连续数字的字符串,用空格分隔。[ ]([^0]\d+|\d{1,7}|\d{8}\d+)[ ]
替换为[ ]
,以删除不以0开头,长度为1-7个字符或长度超过8个字符的数字。您可以使用您想要的任何分隔符;它不一定是[ ]
。它可以是,
,w
,☺
,除了数字之外的任何其他内容都可以使用。
注意:为了清楚起见,空格被写为[ ]
,但没有必要。