0

私は正規表現が初めてで、些細な解析タスクに悩まされています。次の構造を与えると、空行間のすべてのテキストに一致する正規表現が必要になるため、一致の配列を反復処理し、各項目を質問として解析できます

id1. "question title 1"
* variant one
* variant two
* three // comment

id2. "question title 2"
+ variant one
+ two
+ three

id3. "Anoter question title"
another variant
4

1 に答える 1

1

\. ".*これを使用する. "question title 1"と、一致の1つとして提供されます。4文字目から最後から2文字目まで読めます。

正規表現を使用して質問と回答の両方の行を一致させる方法がわかりませんでした。なぜなら、この正規表現は複数の行に一致しますが\. "[\s\S]+、すべての質問と回答が単一の文字列に一致する文字列の最後まで一致するからです。

回答が常に + または * のいずれかで始まると仮定すると、別の方法として、(\. ".*)|([\*\+].*)これを使用する方法があります。これは、質問と回答の両方に一致します。ただし、質問と回答は別の試合になります。

別の方法は、を使用して文字列を分割するid. "ことです。これにより、質問と回答がそれぞれ別の文字列になります。"ただし、質問の最後にある を手動で削除する必要がある場合があります。

私が想像できる別の方法は、を使用して文字列全体を分割することです^\s*$。これにより、空白行を使用して文字列が分割され、質問と回答の両方が 1 つのグループとして表示されます。これが役立つことを願っています。

于 2013-06-15T09:49:23.703 に答える