答えて
テキストにはLF以外の改行が含まれています。 .NET正規表現では、ドットはLF以外の任意の文字に一致します。だから、右改行前(すなわち任意である)第一CRまでレイジーLF以外の任意の一つ以上の文字にマッチする
@"^(#+).+?\r?$"
.+?\r?$
を使用します。
それとも否定文字クラスを使用します。
@"^(#+)[^\r\n]+"
[^\r\n]+
はCR/LF以外の1つの以上の文字にマッチします。
あなたのために働いてうれしいです。私の答えが役に立つと分かったら、それをアップ・ボードすることを検討してください。 –
あなたが持っているものは良いです。欠けているのは、.
が複数行オプションであっても、改行文字と一致しないことだけです。これを2つの異なる方法で回避することができます。
最も簡単なのは、改行を文字として扱うようにするRegexOptions.Singlelineフラグを使用することです。つまり、^
は文字列の先頭に一致し、$
は文字列の末尾と一致し、.
はすべてと一致し、改行を含みます。
これを修正するもう1つの方法は、あなたの正規表現では改行を明示的に許可するように修正することです。これを行うには、.
を任意の文字または改行を意味する(?:.|\n)
に置き換えることができます。たとえば、^(#+)(?:.|\n)+$
になります。最初に改行されていない文字があることを確認したい場合は、余分なドットを追加してください。^(#+).(?:.|\n)+$
私はあなたが私の質問を誤解したと思います。私は新しい行と一致させたくありません。 2番目のイメージは私が持っているもので、最初のイメージは私が得なければならないものです。入力文字列「これは\ n #header \ nですが、これはありません」は「#header」にのみ一致する必要があります。現在、それは "#headerと一致していますが、これはありません" – user2950509
- 1. 正規表現マッチは最後が、1つの文字
- 2. 正規表現は2つの文字列の間にあるすべての文字列にマッチします。
- 3. BASH_REMATCHは、正規表現マッチ後に空の文字列を表示します
- 4. 有効な正規表現の正規表現文字列
- 5. 正規表現が有効になっていません
- 6. 正規表現マッチ、この文字列
- 7. 正規表現はネットでは動作しません
- 8. 正規表現find()は真ではありません。文字列の重複文字を検出する
- 9. Aを含むがBを含まない文字列にマッチする正規表現はありますか
- 10. 正規表現 - 一致するものがありません
- 11. 正規表現の最初と最後の文字は数字でなければなりません
- 12. 2つの文字列の真ん中に正規表現があります
- 13. 正規表現で扱える文字の最大長はありますか?
- 14. 正規表現では演算子がありません
- 15. Geanyでは改行正規表現がありません
- 16. Perlの正規表現は貪欲ではありません
- 17. 正規表現はGolangの "定数ではありません"
- 18. バイナリはObjectIdSerializerの有効な表現ではありません
- 19. 正規表現Javascript英字の頭文字で始まりや終わりではありません
- 20. 正規表現は必須ではありません
- 21. 正規表現、タグはコンテンツではありません
- 22. 正規表現を使って文字列の半分をマッチさせることも、マッチしたグループの半分を使うこともできますか?
- 23. 正規表現 - 他の言葉ではありません
- 24. パターンにマッチしたり、空の正規表現はありますか?
- 25. 正規表現が文字列を検索できません
- 26. C++の正規表現が正しくありません
- 27. 正規表現のフラグが正しくありませんエラーパーシャルビュー
- 28. 正規表現マッチ、残りの文字列を返す
- 29. 正規表現のアルファベットと数字の間にスペースはありません。
- 30. 正規表現はオンラインテストではマッチしますが、JavaScriptの実行ではマッチしませんか?
ドットは、DOTALL修飾子なしのLFと一致することはできません。 dotnetfidleを共有していただけますか? –
CRが終了しています。 '@" ^(#+)。+?\ r?$ "' –