-1
新しい `ですべてを置き換える、私は私のHTMLに次のテキストを持ちたいと何か他のもの抽出IDと正規表現に例HTML`
例HTMLと交換したいと思います:
{{Object id='foo'}}
このような変数にIDを抽出します。
:string strId = "foo";
これまでのところ私は例HTMLをキャプチャします次の正規表現コードを持っています
string strStart = "Object";
string strFind = "{{(" + strStart + ".*?)}}";
Regex regExp = new Regex(strFind, RegexOptions.IgnoreCase);
Match matchRegExp = regExp.Match(html);
while (matchRegExp.Success)
{
//At this point, I have this variable:
//{{Object id='foo'}}
//I can find the id='foo' (see below)
//but not sure how to extract 'foo' and use it
string strFindInner = "id='(.*?)'"; //"{{Slider";
Regex regExpInner = new Regex(strFindInner, RegexOptions.IgnoreCase);
Match matchRegExpInner = regExpInner.Match(matchRegExp.Value.ToString());
//Do something with 'foo'
matchRegExp = matchRegExp.NextMatch();
}
私は、これは簡単な解決策になるかもしれません理解して、私は正規表現についてより多くの知識を得ることを期待していますが、より重要なのは、私はより効率的に、このクリーナーに近づくと方法についての提案を受け入れることを望んでいます。
はありがとう
停止!見て聞く!毎日、正規表現を使ってHtmlを解析するという素晴らしいアイデアの中で、何人かが目を覚まします。 Xmlパーサーよりも優れたHtmlパース。 あなたの質問にお答えする間に、どれほど難しいかを隠すかもしれません! '<>'の代わりに '{{' 'を使うと、"> _ <<3 I luv you => _o/"のようなコメントを解析することで正規表現を悪夢に変えることができます。 あなたの頭の正規表現ではシンプルな "これを探す"というのはありません! htmlの正規表現を解析するには、毎回再帰的に行って、最初に戻っていかなければなりません。パーサーを使用すると、jsでコードを実行するのと同じようにコードが簡単になります。 –
ありがとう、私はあなたの意見を大事にしていますが、RegExは簡単なアプローチのようですが、そうではないようです。 WordPressのdoShortCode()が達成したことと同様のことをやろうとしているときに 'SubString'と' IndexOf'に移動しようとしましたが、現在どのように動作しているのかのドキュメントを見つけることができました。私はコンセプトの証明を取得し、そこから移動するために探しています。 – Derek
Htmlパーサーを[Html Agility Pack(HAP)](http://html-agility-pack.net/?z=codeplex)として使用します。シンプルなナゲットとビムで、あなたはhtmlで何でも好きなものを選ぶことができます。何も学ぶことのないところにいることを学ぶのは難しいことではありません。 –