나는 C#에서 KB/아약스 /와 Ajax 정규식 클래스와/C#으로 정규 표현식에 유용한 데이터를 추출하는 방법
<a href="/KB/ajax/" id="ctl00_MC_TCRp_ctl01_TSRp_ctl01_TSNL">Ajax</a>
가 지금은 싶어하는 문자열을 가지고있다.
아무도 도와 줄 수 있습니까?
덕분에 많은
건배
나는 C#에서 KB/아약스 /와 Ajax 정규식 클래스와/C#으로 정규 표현식에 유용한 데이터를 추출하는 방법
<a href="/KB/ajax/" id="ctl00_MC_TCRp_ctl01_TSRp_ctl01_TSNL">Ajax</a>
가 지금은 싶어하는 문자열을 가지고있다.
아무도 도와 줄 수 있습니까?
덕분에 많은
건배
string url = "<a href=\"/KB/ajax/\" id=\"ctl00_MC_TCRp_ctl01_TSRp_ctl01_TSNL\">Ajax</a>";
Regex finder = new Regex("href=\"([^\"]*)\"");
string first = finder.Match(url).Groups[1].Value;
finder = new Regex(">([^<]*)<");
string second = finder.Match(url).Groups[1].Value;
다음 정규식도 <a>...</a>
로 둘러싸인 텍스트 내부 태그 수 :
<\s*a\b[^>] href\s*=\s*['"]([^"']*)['"][^>]*>((?:.(?!</a))*.)</a
C# .NET 코드 예제 :
using System;
using System.Text.RegularExpressions;
namespace myapp
{
class Class1
{
static void Main(string[] args)
{
String sourcestring = "source string to match with pattern";
Regex re = new Regex(@"\<\s*a\b[^\>]+href\s*=\s*['""]([^""']*)['""][^\>]*\>((?:.(?!<\/a))*.)\<\/a");
MatchCollection mc = re.Matches(sourcestring);
int mIdx=0;
foreach (Match m in mc)
{
for (int gIdx = 0; gIdx < m.Groups.Count; gIdx++)
{
Console.WriteLine("[{0}][{1}] = {2}", mIdx, re.GetGroupNames()[gIdx], m.Groups[gIdx].Value);
}
mIdx++;
}
}
}
}
(
[0] => Array
(
[0] => <a href="/KB/ajax/" id="ctl00_MC_TCRp_ctl01_TSRp_ctl01_TSNL">Aj<b>a</b>x</a
)
[1] => Array
(
[0] => /KB/ajax/
)
[2] => Array
(
[0] => Aj<b>a</b>x
)
)
매우 강력한 reg exp, 그리고 MatchCollection을 사용하는 법을 배웠습니다, 감사합니다 Daniel :) – Franva
문자열 및 당신이 당신 대신에 대한 XML 파서를 사용하는 것이 좋습니다 – vmg
을 얻고 싶은 제공 :$는 배열과 일치합니다. 이것이 그들이 원하는 것입니다. –