1

私は次のテキストを持っています

|1 Style Indented Normal + Courier New T201_LLR_001|2 Style Indented Normal + Courier New 3 つのポインターを受け入れます。|3 Style Indented Normal + Courier New SSC_01_SRS_0001

このテキストを変換して、3 つの個別の出力を取得する必要があります

  • T201_LLR_001
  • 3 つの指針を受け入れなければならない
  • SSC_01_SRS_0001

以下のレギュラーを使用しました (\S+_LLR_\d+)(.+)\t(SSC_.+)*

次の出力を取得するには

  • T201_LLR_001
  • |2 Style Indented Normal + Courier New 3 つのポインターを受け入れます。|3 Style Indented Normal + Courier New
  • SSC_01_SRS_0001

しかし、私はテキストを取り除く必要があります|2 Style Indented Normal + Courier New" and "|3 Style Indented Normal + Courier New

正規表現で可能ですか?使い方がわかりません(?!TEXT)

4

3 に答える 3

0

気付かなかった方のために説明すると、フォントと必要な文字列の間にタブがあることがわかります。これにより、問題がかなり簡単になります。

これにより、必要なものが得られるはずです。

([^_\s]+_LLR_\d+)[^\t]*\t([^|]*)[^\t]*\t(SSC_.+)

説明:

\S(空白ではない)を[^_\s](アンダースコアや空白ではない)に変更しました。

次に、消費しT201_LLR_001ます。

次に、次のタブまでのすべてを消費します|2 Style Indented Normal + Courier New

|次に、までのすべてを消費しShall accept the three pointers.、括弧で囲んでグループに格納します。

次に、次のタブまでのすべてを消費します|3 Style Indented Normal + Courier New

次に、それを消費SSC_01_SRS_0001してグループに入れます。

Java テストは正しく出力されます:

T201_LLR_001
Shall accept the three pointers.
SSC_01_SRS_0001
于 2013-08-07T13:03:40.230 に答える
0

これを試してください(.NET):

(?<=\|\d \w* \w* \w* \+ [a-z-A-Z0-9 ]*\t)[\w ]*

またはこれ:

(?<=\|\d [a-zA-Z+ ]*\t)[\w ]*
于 2013-08-07T10:09:21.480 に答える