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

あなたが何を見つけようとしているのか理解できたら、次の表現を試してください。

^~(1000000).*$

^.*および$すべてが典型的な正規表現のように機能し、~(...)は「一致しない」ことを意味します。したがって、パターンの全体的な意図は、文字列「1000000」で始まらない行を見つけることです。

于 2013-03-28T11:58:29.013 に答える
0

^[^0-9]{1,10}[^|].*$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構文は機能しないことに注意してください。\D1 桁に相当するもの、つまり[0-9]VS の正規表現は:d.

VS2005 で使用できる正規表現のリストについては、http: //msdn.microsoft.com/en-us/library/2k3te2cs(VS.80).aspxを参照してください。

于 2013-03-28T11:25:16.200 に答える