[csharp]
using System;
using System.Text.RegularExpressions;
namespace SG_VQCDataCollection
{
/// <summary>
/// éè¿Framworkç±»åºä¸çRegexç±»å®ç°äºä¸äºç¹æ®åè½æ°æ®æ£æ¥
/// </summary>
public class MetarnetRegex
{
private static MetarnetRegex instance = null;
public static MetarnetRegex GetInstance()
{
if (MetarnetRegex.instance == null)
{
MetarnetRegex.instance = new MetarnetRegex();
}
return MetarnetRegex.instance;
}
private MetarnetRegex()
{
}
/// <summary>
/// å¤æè¾å
¥çå符串åªå
å«æ±å
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsChineseCh(string input)
{
//Regex regex = new Regex("^[\ä¸-\é¾¥]+$");
//æ¹äºä¸ä¸
Regex regex = new Regex("^[\ä¸-\é¾¥]+$");
return regex.IsMatch(input);
}
/// <summary>
/// å¹é
3ä½æ4ä½åºå·ççµè¯å·ç ï¼å
¶ä¸åºå·å¯ä»¥ç¨å°æ¬å·æ¬èµ·æ¥ï¼
/// ä¹å¯ä»¥ä¸ç¨ï¼åºå·ä¸æ¬å°å·é´å¯ä»¥ç¨è¿åå·æç©ºæ ¼é´éï¼
/// ä¹å¯ä»¥æ²¡æé´é
/// \(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8}|\(0\d{3}\)[- ]?\d{7}|0\d{3}[- ]?\d{7}
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsPhone(string input)
{
string pattern = "^\\(0\\d{2}\\)[- ]?\\d{8}$|^0\\d{2}[- ]?\\d{8}$|^\\(0\\d{3}\\)[- ]?\\d{7}$|^0\\d{3}[- ]?\\d{7}$";
Regex regex = new Regex(pattern);
return regex.IsMatch(input);
}
/// <summary>
/// å¤æè¾å
¥çå符串æ¯å¦æ¯ä¸ä¸ªåæ³çææºå·
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsMobilePhone(string input)
{
Regex regex = new Regex("^13\\d{9}$");
return regex.IsMatch(input);
}
/// <summary>
/// å¤æè¾å
¥çå符串åªå
å«æ°å
/// å¯ä»¥å¹é
æ´æ°åæµ®ç¹æ°
/// ^-?\d+$|^(-?\d+)(\.\d+)?$
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsNumber(string input)
{
string pattern = "^-?\\d+$|^(-?\\d+)(\\.\\d+)?$";
Regex regex = new Regex(pattern);
return regex.IsMatch(input);
}
/// <summary>
/// å¹é
éè´æ´æ°
///
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsNotNagtive(string input)
{
Regex regex = new Regex(@"^\d+$");
return regex.IsMatch(input);
}
/// <summary>
/// å¹é
æ£æ´æ°
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsUint(string input)
{
Regex regex = new Regex("^[0-9]*[1-9][0-9]*$");
return regex.IsMatch(input);
}
/// <summary>
/// å¤æè¾å
¥çå符串åå
å«è±æåæ¯
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsEnglisCh(string input)
{
Regex regex = new Regex("^[A-Za-z]+$");
return regex.IsMatch(input);
}
/// <summary>
/// å¤æè¾å
¥çå符串æ¯å¦æ¯ä¸ä¸ªåæ³çEmailå°å
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsEmail(string input)
{
string pattern = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
Regex regex = new Regex(pattern);
return regex.IsMatch(input);
}
/// <summary>
/// å¤æè¾å
¥çå符串æ¯å¦åªå
å«æ°ååè±æåæ¯
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsNumAndEnCh(string input)
{
string pattern = @"^[A-Za-z0-9]+$";
Regex regex = new Regex(pattern);
return regex.IsMatch(input);
}
/// <summary>
/// å¤æè¾å
¥çå符串æ¯å¦æ¯ä¸ä¸ªè¶
é¾æ¥
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsURL(string input)
{
//string pattern = @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
string pattern = @"^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$";
Regex regex = new Regex(pattern);
return regex.IsMatch(input);
}
/// <summary>
/// å¤æè¾å
¥çå符串æ¯å¦æ¯è¡¨ç¤ºä¸ä¸ªIPå°å
/// </summary>
/// <param name="input">被æ¯è¾çå符串</param>
/// <returns>æ¯IPå°åå为True</returns>
public static bool IsIPv4(string input)
{
string[] IPs = input.Split('.');
Regex regex = new Regex(@"^\d+$");
for (int i = 0; i < IPs.Length; i++)
{
if (!regex.IsMatch(IPs[i]))
{
return false;
}
if (Convert.ToUInt16(IPs[i]) > 255)
{
return false;
}
}
return true;
}
/// <summary>
/// 计ç®å符串çå符é¿åº¦ï¼ä¸ä¸ªæ±åå符å°è¢«è®¡ç®ä¸ºä¸¤ä¸ªå符
/// </summary>
/// <param name="input">éè¦è®¡ç®çå符串</param>
/// <returns>è¿åå符串çé¿åº¦</returns>
public static int GetCount(string input)
{
return Regex.Replace(input, @"[\ä¸-\é¾¥/g]", "aa").Length;
}
/// <summary>
/// è°ç¨Regexä¸IsMatchå½æ°å®ç°ä¸è¬çæ£å表达å¼å¹é
/// </summary>
/// <param name="pattern">è¦å¹é
çæ£å表达å¼æ¨¡å¼ã</param>
/// <param name="input">è¦æç´¢å¹é
项çå符串</param>
/// <returns>å¦ææ£å表达å¼æ¾å°å¹é
项ï¼å为 trueï¼å¦åï¼ä¸º falseã</returns>
public static bool IsMatch(string pattern, string input)
{
Regex regex = new Regex(pattern);
return regex.IsMatch(input);
}
/// <summary>
/// ä»è¾å
¥å符串ä¸ç第ä¸ä¸ªå符å¼å§ï¼ç¨æ¿æ¢å符串æ¿æ¢æå®çæ£å表达å¼æ¨¡å¼çææå¹é
项ã
/// </summary>
/// <param name="pattern">模å¼å符串</param>
/// <param name="input">è¾å
¥å符串</param>
/// <param name="replacement">ç¨äºæ¿æ¢çå符串</param>
/// <returns>è¿å被æ¿æ¢åçç»æ</returns>
public static string Replace(string pattern, string input, string replacement)
{
Regex regex = new Regex(pattern);
return regex.Replace(input, replacement);
}
/// <summary>
/// å¨ç±æ£å表达å¼æ¨¡å¼å®ä¹çä½ç½®æåè¾å
¥å符串ã
/// </summary>
/// <param name="pattern">模å¼å符串</param>
/// <param name="input">è¾å
¥å符串</param>
/// <returns></returns>
public static string[] Split(string pattern, string input)
{
Regex regex = new Regex(pattern);
return regex.Split(input);
}
/// <summary>
/// å¤æè¾å
¥çå符串æ¯å¦æ¯åæ³çIPV6 å°å
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsIPV6(string input)
{
string pattern = "";
string temp = input;
string[] strs = temp.Split(':');
if (strs.Length > 8)
{
return false;
}
int count = MetarnetRegex.GetStringCount(input, "::");
if (count > 1)
{
return false;
}
else if (count == 0)
{
pattern = @"^([\da-f]{1,4}:){7}[\da-f]{1,4}$";
Regex regex = new Regex(pattern);
return regex.IsMatch(input);
}
else
{
pattern = @"^([\da-f]{1,4}:){0,5}::([\da-f]{1,4}:){0,5}[\da-f]{1,4}$";
Regex regex1 = new Regex(pattern);
return regex1.IsMatch(input);
}
}
/* *******************************************************************
* 1ãéè¿â:âæ¥åå²å符串çå¾å°çå符串æ°ç»é¿åº¦æ¯å¦å°äºçäº8
* 2ãå¤æè¾å
¥çIPV6å符串ä¸æ¯å¦æâ::âã
* 3ãå¦æ没æâ::âéç¨ ^([\da-f]{1,4}:){7}[\da-f]{1,4}$ æ¥å¤æ
* 4ãå¦ææâ::â ï¼å¤æ"::"æ¯å¦æ¢åºç°ä¸æ¬¡
* 5ãå¦æåºç°ä¸æ¬¡ä»¥ä¸ è¿åfalse
* 6ã^([\da-f]{1,4}:){0,5}::([\da-f]{1,4}:){0,5}[\da-f]{1,4}$
* ******************************************************************/
/// <summary>
/// å¤æå符串compare å¨ inputå符串ä¸åºç°ç次æ°
/// </summary>
/// <param name="input">æºå符串</param>
/// <param name="compare">ç¨äºæ¯è¾çå符串</param>
/// <returns>å符串compare å¨ inputå符串ä¸åºç°ç次æ°</returns>
private static int GetStringCount(string input, string compare)
{
int index = input.IndexOf(compare);
if (index != -1)
{
return 1 + GetStringCount(input.Substring(index + compare.Length), compare);
}
else
{
return 0;
}
}
}
}
温馨提示:答案为网友推荐,仅供参考