用于格式化文件的正则表达式

时间:2013-03-28 11:13:58

标签: regex visual-studio regex-negation

我的文件包含以特定模式开头的每行的数据

1000000179|abcd.....
1000000180|wedwedw...
1000000181|wnewedwed...

我已经在visual studio中打开了文件,并且需要一个RE来查找没有以正确顺序开头的任何行。如下第3行和第4行无效。如何使用RE

隔离它们
1000000179|abcd.....
1000000180|wedwedw...
1000xyadaa|wnewedwed...
%dfgxyadaa|wnewedwed...

2 个答案:

答案 0 :(得分:0)

^[^0-9]{1,10}[^|].*$这样简单的东西应该检测出任何不以十个数字和管道开头的行。

如果您只想选择该行的第一部分,那么^[^0-9]{1,10}[^|]

注意:如果您更喜欢这种语法,可以将[^0-9]替换为\D(区分大小写!),例如^\D{1,10}[^|]

要反转逻辑(即找到正确的行),请使用^[0-9]{10}\|.*$^\d{10}\|


编辑:对于VS2005的搜索/替换“正则表达式”:

要找到不以10个数字后跟管道开头的行:^~([0-9]^10\|)

要查找以10个数字开头,后跟管道的行:^[0-9]^10\|

请注意\d\D语法不起作用,如@ KennethK。的评论如下。 VS正则表达式中单个数字即[0-9]的等效值为:d

有关VS2005中可用的正则表达式列表,请参阅http://msdn.microsoft.com/en-us/library/2k3te2cs(VS.80).aspx

答案 1 :(得分:0)

如果我理解您要查找的内容,请尝试以下表达式:

^~(1000000).*$

^.*$的功能与典型的正则表达式相同,~(...)表示“不匹配”。因此,模式的总体意图是找到不以字符串“1000000”开头的行。