1

こんにちは、私は正規表現に不慣れです。次の行のパターンを一致させようとしています

T071108452T    42D896D5O 3587

T071108452T 42D896D5 までパターンを一致させたいのですが、この後、文字「O」を一致させたいのですが、このようなことを試しました

 (T)(\d{9})(T)(\d{0,19}\s{0,19}\w{0,19})O

しかし、それにはすでに \w{0,19} で「O」が含まれており、「O」を特定の文字として一致させたいと考えています。

より多くの値については

T065000090T203 93 5797 9O 4037  
T325170628T0108626004D18O01054
T071108452T    42D896D5O 3587

だから私は「T」に一致させたい - 次に9桁、次に「T」、そして「O」までの英数字の任意の組み合わせ

4

1 に答える 1

0

次の文字列があるとします。

  T071108452T    42D896D5O 3587O
Note that I added an extra O --^

最後の まで一致させたい場合Oは、次のパターンを使用できます。[\w\s]+(?=O)

これの意味は:

  • [\w\s]+貪欲に単語と空白を 1 回以上一致させます。
  • (?=O)O見つかるまで一致するゼロ幅先読みアサーション

then が最初に出現するまで一致させたいO場合は、次のパターンを使用できます[\w\s]+?(?=O)。疑問符が追加されていることに注意してください。これは貪欲に一致するためのものです。

注: \wはアンダースコアにも一致します。それを防ぐために に置き換えることができ[\w\s]ます[^\W\S_]。否定と大文字に注意してください。

于 2013-08-05T09:43:12.253 に答える