C葃正則関数の使用例【マッチング、置換、抽出】
本論文の実例はC〓正則関数の使用法を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
System.Text.Reglar Expressionsの名前空間にはいくつかのクラスが含まれています。これらのクラスはNET Framworkの正規表現エンジンへのアクセスを提供します。この名前空間は、Microsoft.NET Framewark内で実行される任意のプラットフォームまたは言語から、正規表現機能を提供する。
1正規表現の一般的な使用
①フォーマットマッチング
JavaScript正規表現はオンラインテストツールです。
http://tools.jb51.net/regex/javascript
正規表現のオンライン作成ツール:
http://tools.jb51.net/regex/create_reg
C関連の内容についてもっと興味がある読者は、当駅のテーマを見ることができます。「C氨正則表現の使い方のまとめ」、「C〓〓コードの操作の技巧は総括します」、「C〓中XMLファイルの操作技術のまとめ」、「C〓〓よくあるコントロールの使い方教程」、「WinFormコントロールの使い方のまとめ」、「C〓〓〓データ構造とアルゴリズム教程」、「C铅対象プログラム設計入門教程」および「C〓〓〓プログラムの設計のスレッドは技巧を使って総括します。」
ここで述べたように、皆さんのC〓プログラムの設計に役に立ちます。
System.Text.Reglar Expressionsの名前空間にはいくつかのクラスが含まれています。これらのクラスはNET Framworkの正規表現エンジンへのアクセスを提供します。この名前空間は、Microsoft.NET Framewark内で実行される任意のプラットフォームまたは言語から、正規表現機能を提供する。
1正規表現の一般的な使用
①フォーマットマッチング
/// <summary>
///
/// </summary>
/// <returns></returns>
public static string CheckMail(string strEmail)
{
string result = "";
Regex regex = new Regex(@"[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}");
Match match = regex.Match(strEmail);
if(match.Success)
{
result = strEmail;
}
else
{
result = " ";
}
return result;
}
②マッチした内容を置換する
/// <summary>
/// (yyyy-MM-dd yyyy MM dd )
/// </summary>
/// <param name="strDate"></param>
/// <returns></returns>
public static string TransDate(string strDate)
{
string result = "";
Regex regex = new Regex(@"(\d+)-(\d+)-(\d+)");
if(regex.IsMatch(strDate))
{
result = regex.Replace(strDate,"$1 $2 $3 ");
}
return result;
}
③マッチング内容の抽出
/// <summary>
///
/// </summary>
public static string Contentextract()
{
string result = "";
string str = " ! <User EntryTime='2010-10-7' Email='[email protected]'> </User> 。";
Regex regex = new Regex(@"<User\s*EntryTime='(?<time>[\s\S]*?)'\s+Email='(?<email>[\s\S]*?)'>(?<userName>[\s\S]*?)</User>", RegexOptions.IgnoreCase);
Match match = regex.Match(str);
if(match.Success)
{
string userName = match.Groups["userName"].Value; //
string time = match.Groups["time"].Value; //
string email = match.Groups["email"].Value; //
string strFormat = String.Format(" :{0}, :{1}, :{2}", userName, time, email);
result = regex.Replace(str, strFormat); //
Console.WriteLine(result);
}
return result; // : ! , :2010-10-7, :[email protected] 。
}
2私の一例
/// <summary>
/// XML
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
string strXml = GetStrXml(); // XML
Regex userRegex = new Regex(@"<User\s*EntryTime='(?<time>[\s\S]*?)'\s+Email='(?<email>[\s\S]*?)'>(?<userName>[\s\S]*?)</User>", RegexOptions.IgnoreCase);
MatchCollection userMatchColl = userRegex.Matches(strXml);
if (userMatchColl.Count > 0)
{
foreach (Match matchItem in userMatchColl)
{
string userName = matchItem.Groups["userName"].Value; //
string time = TransDate(matchItem.Groups["time"].Value); // ,
string email = CheckMail(matchItem.Groups["email"].Value); // ,
string strFormat = String.Format(" :{0}, :{1}, :{2}", userName, time, email);
Console.WriteLine(strFormat);
}
}
Console.ReadLine();
}
/// <summary>
/// XML
/// </summary>
/// <returns></returns>
public static string GetStrXml()
{
StringBuilder strXml = new StringBuilder();
strXml.Append("<UserInfo>");
strXml.Append("<User EntryTime='2010-10-7' Email='[email protected]'> </User>");
strXml.Append("<User EntryTime='2012-5-15' Email='lisi163.com'> </User>");
strXml.Append("<User EntryTime='2012-6-13' Email='[email protected]'> </User>");
strXml.Append("</UserInfo>");
return strXml.ToString();
}
PS:ここでもう2つの非常に便利な正規表現ツールを提供します。JavaScript正規表現はオンラインテストツールです。
http://tools.jb51.net/regex/javascript
正規表現のオンライン作成ツール:
http://tools.jb51.net/regex/create_reg
C関連の内容についてもっと興味がある読者は、当駅のテーマを見ることができます。「C氨正則表現の使い方のまとめ」、「C〓〓コードの操作の技巧は総括します」、「C〓中XMLファイルの操作技術のまとめ」、「C〓〓よくあるコントロールの使い方教程」、「WinFormコントロールの使い方のまとめ」、「C〓〓〓データ構造とアルゴリズム教程」、「C铅対象プログラム設計入門教程」および「C〓〓〓プログラムの設計のスレッドは技巧を使って総括します。」
ここで述べたように、皆さんのC〓プログラムの設計に役に立ちます。