0

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

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

我已经在 Visual Studio 中打开了该文件,并且需要一个 RE 来查找任何没有以正确顺序开始的行。像下面的第 3 行和第 4 行是无效的。如何使用 RE 隔离它们

1000000179|abcd.....
1000000180|wedwedw...
1000xyadaa|wnewedwed...
%dfgxyadaa|wnewedwed...
4

2 回答 2

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\|

请注意,根据@KennethK. 下面的评论, \dand\D语法不起作用。[0-9]VS 正则表达式中单个数字的等价物是:d.

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

于 2013-03-28T11:25:16.200 回答
0

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

^~(1000000).*$

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

于 2013-03-28T11:58:29.013 回答