C#アプリケーションで正規表現を使用する必要があり、regex.matchメソッドを使用するために文字列として使用しようとしています。私の正規表現はid="(tt[0-9]+)\|imdb
のようで、"id\"(tt[0-9]+)\\|imdb"
のような文字列に変換しますが、動作しません。正規表現を文字列に変換するソリューションやアプリケーションはありますか?正規表現を文字列に変換する#
答えて
エスケープを削除して、@記号を使用できます。
@"id=""(tt[0-9]+)\|imdb"
注:C#では二重引用符に
を倍増させる必要があり、REGのEXPSを含む文字列の前@
を追加するのは良いアイデアです:
@"id\"(tt[0-9]+)\\|imdb"
それ以外の場合は正規表現エンジンが唯一の希望次の文字列を参照してください。
id"(tt[0-9]+)\|imdb
ここで、\|
はrecoではありませんあなたがそれを望むように怒っている。
良いアドバイス、それほど良い説明ではありません。逐語的な文字列のバージョンでは、 '\"は '' ''に変更する必要があり、 '\\ |'の余分なバックスラッシュは削除する必要がありますが、OPの正規表現は非逐語的な文字列に対してうまく形成されます。実際の問題は、@AndrewCoxがコメントで指摘したように、 '='が見つからないということでした。 –
あなたが達成しようとしていることがわからないので、私は別のパスと別の投稿を行っています。
Regex.Match
メソッドは、照合しようとしているString
を取得する必要があります。構築されたRegExからStringに逆戻りしようとしているようです。その場合は、RegExのToString()
を呼び出して、渡された式を取得します。
単に式を文字列として取得しようとしている場合は、pattern
以下のvarは他の投稿に記載されているように@を使用するようになります。いずれにしても、RegEx
自体に一致させるパターンが含まれている必要があります。
string text = "91919182389348487";
string pattern = @"id=""(tt[0-9]+)\|imdb";
Regex r = new Regex(pat, RegexOptions.IgnoreCase);
Match m = r.Match(text);
...
これは完璧に機能したthanxです。 –
@Emre答えとして受け入れるようにしてください –
- 1. 文字列を正規表現の文字列リテラルに変換するには
- 2. 文字列を正規表現に変換する
- 3. 正規表現文字列の置換。
- 4. 正規表現の文字列置換
- 5. 文字列内の文字を置換する正規表現
- 6. 正規表現文字列
- 7. htmlspecialcharsをエスケープ文字に変換する正規表現
- 8. 正規表現の特殊文字間の文字列を置換する正規表現#
- 9. Perl正規表現をSQL正規表現に変換する
- 10. Jenkinsの正規表現の正規表現文字列パラメータプラグイン
- 11. 有効な正規表現の正規表現文字列
- 12. 正規表現正規表現一致文字列
- 13. 文字列を置換する正規表現 "<" and ">"
- 14. 部分文字列を置換するsedの正規表現
- 15. 正規表現:文字列を置換する
- 16. 文字列を正規表現のリテラルに変換する方法
- 17. CMake小文字を大文字に変換する正規表現
- 18. javascript - 正規表現の文字列を大文字にする
- 19. 文字列間の正規表現に一致する正規表現
- 20. 文字列または正規表現のリテラルにない正規表現と一致する正規表現
- 21. 正規表現に文字が到達するまでの文字列を取得する正規表現
- 22. 正規表現で文字列を抽出する正規表現
- 23. JS文字列:正規表現のインデックスに置き換え
- 24. ユーザ入力文字列を生の文字列リテラルに変換して正規表現を作成する
- 25. JSON文字列で置き換える正規表現
- 26. Pythonの正規表現、Unicode文字列
- 27. ユニコード文字列の正規表現
- 28. パイソン - 正規表現 - 文字列
- 29. 文字列プレースホルダと正規表現
- 30. 正規表現は、文字列
あなたの文字列が欠落していますかは意図的ですか? –