1

テキストファイルで認識しようとしている文字列を次に示します。テキスト ファイルには、各行で抽出する必要がある特定のフィールドがあります。元:

Field1 = This is the content for field 1
Field2 = This is the content for field 2
Field3 = This is the content for field 3, which is = to 4445

最初の「=」記号の後に field3 の内容を抽出したいとします。「これはフィールド 3 のコンテンツであり、= から 4445 まで」というコンテンツを取得するにはどうすればよいですか? 私は正規表現を始めたばかりなので、あまり経験がありません。これが私が試したものです:

=.*

ただし、これは最初の「=」記号とその後のすべてを出力します。最初の = 記号を省略したい。

同様に、最初の「=」記号なしで「Field3」を取得するための正規表現は何でしょうか? 最初の等号に基づいて行を分割できることはわかっていますが、実際には正規表現で行う必要があります。ありがとうございました

4

3 に答える 3

2

キャプチャ グループを使用する必要があります。そのようなものになる何か:

str.match(/=\s*(.*)$/)[1];

または、次のようにします。

res = str.match(/=\s*(.*)$/);
console.log(res[1]);

「より安全な」正規表現が必要な場合は、次を試してください。

str.match(/^[^=]+=\s*(.*)$/);

^行頭に一致します。

[^=]+等号以外の任意の文字に一致します。

=次に、最初の等号に一致します。

(.*)$最初の等号から文字列の終わりまでのすべてをキャプチャします。

于 2013-09-17T18:19:01.033 に答える
0

あなただけを照合Field3するには、先読みアサーションを使用できます。

str.match(/Field3(?=\s*=)/);

これはField3、等号が後に続く場合に一致しますが、等号は一致文字列に含まれません。

于 2013-09-17T18:25:16.107 に答える