click <a href="javascript:validate('http://www.google.com');">here</a> to open google.com
を削除:正規表現私は、次の上記の文章を交換する必要があるいくつかのテキストAAのハイパーリンクに
click <a href="http://www.google.com">here</a> to open google.com
をC#の
click <a href="javascript:validate('http://www.google.com');">here</a> to open google.com
を削除:正規表現私は、次の上記の文章を交換する必要があるいくつかのテキストAAのハイパーリンクに
click <a href="http://www.google.com">here</a> to open google.com
をC#の
Regex regex = new Regex ("href\=\".+?'(.+)'",
RegexOptions.IgnoreCase);
MatchCollection matches = regex.Matches(text);
でこれを行うために、正規表現で私を助けてくださいグループ1を抽出する必要があります:
matches .Groups[1]
これはあなたが割り当てる新しい値です。 HtmlAgilityPack
using System;
using System.Text.RegularExpressions;
class MyClass
{
static void Main(string[] args)
{
string pattern = @"<a href=\"[^\(]*\('([^']+)'\);\">";
Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
string sInput = "click <a href=\"javascript:validate('http://www.google.com');\">here</a> to open google.com";
MyClass c = new MyClass();
// Assign the replace method to the MatchEvaluator delegate.
MatchEvaluator myEvaluator = new MatchEvaluator(c.ReplaceCC);
// Write out the original string.
Console.WriteLine(sInput);
// Replace matched characters using the delegate method.
sInput = r.Replace(sInput, myEvaluator);
// Write out the modified string.
Console.WriteLine(sInput);
}
// Replace each Regex cc match
public string ReplaceCC(Match m)
{
return "click <a href=\"" + m.Group[0] + "\">";
}
}
オースティンが示唆されているようにHTMLを解析すると、これを行うにははるかに効率的な方法ですが、あなたは絶対にREGEXを使用する必要がある場合には、このような何か(referenced from MSDN System.Text.RegularExpressions Namespace)をしてみてくださいHTMLを解析するのに適した方法です。
ここに行く:
正規表現:
(?<=href\=")(javascript:validate\('(?<URL>[^"']*)'\);)
コード:
string url = "click <a href=\"javascript:validate('http://www.google.com');\">here</a> to open google.com";
Regex regex = new Regex("(?<=href\\=\")javascript:validate\\('(?<URL>[^\"']*)'\\);");
string output = regex.Replace(url, "${URL}");
出力:
click <a href="http://www.google.com">here</a> to open google.com
ありません正規表現が必要:
をvar s =
inputString.Replace(
"javascript:validate('http://www.google.com');",
"http://www.google.com");
私は、url(http://www.google.com)が毎回同じではないため、OPは正規表現を使用したいと考えています。私は彼が単に 'Replace'を使うことが可能であれば、正規表現でこれをどうやって行うのか尋ねるつもりはないと思う。 – chown
はい、私はそれもやっていますが、彼が尋ねたことから私はそれを派生できませんので、私は彼が求めたものに答えるように努めました。 –
HtmlAgilityPack:http://htmlagilitypack.codeplex.com/ –
オースティンは、このユースケースのRegex解析にDOMを使用することが望ましいソリューションかもしれないので、これを回答として提出する必要があります。 –