正規表現で漢字やひらがな、カタカナを判定(´・ω・)ス | WEB系技術電脳日記

正規表現で漢字やひらがな、カタカナを判定(´・ω・)ス

何気に苦労した(´・ω・)ス


new System.Text.RegularExpressions.Regex(@"\b\p{IsHiragana}+\b");
new System.Text.RegularExpressions.Regex(@"\p{IsCJKUnifiedIdeographs}");
new System.Text.RegularExpressions.Regex(@"\p{IsKatakana}");
※省略ありで( ; ̄ω ̄)ゞ


で、正規表現を用意して、


WebClient web = new WebClient();
string html = web.DownloadString(url);

//HtmlDocumentクラスにHTMLをセット
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);


で格納。
その後に、

HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes(@"
/html[1]/body[1]/div[1]/div[2]/div[4]/div[1]/div[1]/div/div[1]/div[1]/h2[1]/a[1]|
/html[1]/body[1]/div/div/div/div/div/div/div/table/tr/td|
/html[1]/body[1]/div/div/div/div/div/div/div[1]/h2[1]/a[1]|
/html[1]/body[1]/div[1]/div[2]/div[4]/div[1]/div[1]/div/table/tr/td");


で、Xpathで指定。

foreach (HtmlNode node in nodes)
{
string 文字 = node.InnerText.Substring(0, 1);
System.Text.RegularExpressions.Match m = regex.Match(文字); //ひらがな判定 
System.Text.RegularExpressions.Match n = regex2.Match(文字); //漢字判定
System.Text.RegularExpressions.Match l = regex3.Match(文字); //カタカナ判定
//-------------------------------------------------------------
if (m.Success)
{
//最初の文字がひらがな だったら
textBox1.Text += "\r\n" + node.InnerText;
}
else if (n.Success)
{
//最初の文字が漢字 だったら
textBox1.Text += "\r\n" + node.InnerText;
}
else if (l.Success)
{
//最初の文字が漢字 だったら
textBox1.Text += "\r\n" + node.InnerText;
}
else
{
textBox1.Text += "," + node.InnerText;
}
//-------------------------------------------------------------
// 一文字目で


という感じにした。
すごく面倒だった(´・ω・)ス