この正規表現に関するヘルプを探しています。さまざまな長さの文字列があり、先頭のみを一致させたい。文字列には改行が含まれているため、\A が適しているようです。
次のすべてのケースに一致する正規表現が必要です。
OPTIONAL: [any whitespace/newlines/etc]
OPTIONAL: <?.*?>
OPTIONAL: [any whitespace/newlines/etc]
MANDAORY: <lemon>
OPTIONAL: anything afterwards.
文字列が巨大になる可能性があるため、最終的な Optional マッチングにより、これが非常に遅くなります。
私の最初の解決策は次のとおりです。
"(^\\s*<?.*?>\\s*<lemon>)[\\s\\S]*|(^\\s*<lemon>.*)[\\s\\S]*"
これは非常に複雑で、先頭だけでなく文字列全体に一致します。
私の現在の最善の試みは次のとおりです。
"\\A(?:\\s*<?.*?>)?\\s*<lemon>"
ただし、 の後に何かがある場合、これは機能せずmon>
、一致は失敗します。
誰かが理由について何か考えを持っていますか? の例\A
はまばらで、動作させることができません。