using System;
using System.Text.RegularExpressions;class Program
{
static void Main(string[] args)
{
string str = "<You're angle & evil>";
string pattern = "'|&|<|>"; Regex regex = new Regex(pattern); Program prog = new Program();
MatchEvaluator evaluator = new MatchEvaluator(prog.ConvertToXML);
Console.WriteLine(regex.Replace(str, evaluator));
Console.Read();
} //把正则表达式的匹配到的字符转换成xml能正常识别的标识
public string ConvertToXML(Match m)
{
//string s0=m.Groups[0].Value;
//string s1=m.Groups[1].Value;
//string s2=m.Groups[2].Value;
switch (m.Value)
{
case "'":
return "&apos";
case "&":
return "&";
case "<":
return "<";
case ">":
return ">";
default:
return "";
}
}
}我觉得上面这招是正则最厉害的一招请大家把心目中觉得厉害的一招分享一下大家相互学习下,谢谢
解决方案 »
- C# datatable 分组后排名
- 急急急!!!省市二级联动,可以实现效果,但是无法将客户的选择保存到后台,并保存到数据库
- File类无法调用Create()
- c#中xml添加移动节点问题,急需求助
- C#中遇到的问题
- 各位讨论一下Remoting吧, 为什么我的Remotion放在互联网上运行速度那么慢?
- C# dataset根据xml架构生成xml文件
- 求救!!调用wps的document方法打开wps文件提示com的错误。
- 生产排程时间计算
- 在WEB程序中用OleDbConnection打开一个Access数据库?连接可以共享吗?
- 请问c/c++的dll怎样被c#调用
- 如何能让datagridviewcomboboxcolumn可选可编辑
===
string pattern = "['&<>]+";正则的魅力 要慢慢挖掘
string pattern = "['&<>]";
//str = Regex.Replace(str, pattern, new MatchEvaluator(delegate(Match m) { // or
str = Regex.Replace(str, pattern, m =>
{
switch (m.Value)
{
case "'":
return "&apos";
case "&":
return "&";
case "<":
return "<";
case ">":
return ">";
default:
return "";
}
});
http://beinet.cn/Blog/BlogShow.aspx?id=8fe6311d-ea7b-4e81-9fa1-465b593c82c1
{
ulong hi;
uint lo;
// 构造函数
public UInt96(ulong h, uint l)
{
hi = h;
lo = l;
}
// 返回加1后的结果
public UInt96 Inc()
{
if (lo < 0xFFFFFFFF) return new UInt96(hi, lo + 1);
return new UInt96(hi + 1, 0);
}
// 自增运算符
public static UInt96 operator ++(UInt96 x)
{
return x.Inc();
}
// 十六进制字符串表示
public override string ToString()
{
return string.Join(" ", Regex.Split(string.Format("{0:X16}{1:X8}", hi, lo), "(?!^)(?=(?:.{4})+$)"));
}
}最后这个正则如何:"(?!^)(?=(?:.{4})+$)"来源:http://topic.csdn.net/u/20101126/09/bf43ae57-aff2-456d-98f8-b1aa0ea16a21.html
string t = string.Join(" ", Regex.Split(s, "(?!^)(?=(?:.{4})+$)"));
// 就是把一个字符串从右往左每4位加一个空格,结果是:"12 3456 7890"
string t = Regex.Replace(s, "(?!^)(?=(?:.{4})+$)", " ");
// 把一个字符串从右往左每4位加一个空格,结果是:"12 3456 7890"
http://topic.csdn.net/u/20081011/15/3895f4e7-5f71-4fcd-af35-e5b43457b12f.html看看27楼,和LZ的有些相似:
// 去掉SQL语句中的注释
static string RemoveSqlComment(string sql)
{
return Regex.Replace
(
sql,
@"(?ms)'[^']*'|--.*?$|/\*.*?\*/",
delegate(Match m)
{
switch (m.Value[0])
{
case '-': return "";
case '/': return " ";
default : return m.Value;
}
}
);
}
string t = Regex.Replace(s, @"(?<=\d)(?=(\d\d\d)+(?!\d))", ",");
// 同理,这个正则的作用是把一串数字每3位加一个逗号。
Console.WriteLine(t); // 输出:某某的面积是12,345,678平方米
using System;
using System.Text.RegularExpressions;class Program
{
// 把阿拉伯数字的金额转换为中文大写数字
static string ConvertToChinese(double x)
{
string s = x.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");
string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
return Regex.Replace(d, ".", delegate(Match m) { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); });
} static void Main()
{
Random r = new Random();
for (int i = 0; i < 10; i++)
{
double x = r.Next() / 100.0;
Console.WriteLine("{0,14:N2}: {1}", x, ConvertToChinese(x));
}
}
}
/* 可能的输出:
5,607,400.68: 伍佰陆拾萬柒仟肆佰元陆角捌分
2,017,723.33: 贰佰零壹萬柒仟柒佰贰拾叁元叁角叁分
751,181.17: 柒拾伍萬壹仟壹佰捌拾壹元壹角柒分
7,849,851.53: 柒佰捌拾肆萬玖仟捌佰伍拾壹元伍角叁分
2,629,143.90: 贰佰陆拾贰萬玖仟壹佰肆拾叁元玖角
13,461,629.68: 壹仟叁佰肆拾陆萬壹仟陆佰贰拾玖元陆角捌分
4,594,391.16: 肆佰伍拾玖萬肆仟叁佰玖拾壹元壹角陆分
13,046,560.60: 壹仟叁佰零肆萬陆仟伍佰陆拾元陆角
13,041,371.21: 壹仟叁佰零肆萬壹仟叁佰柒拾壹元贰角壹分
20,639,609.44: 贰仟零陆拾叁萬玖仟陆佰零玖元肆角肆分
*/
不能说我在泼冷水:
string s = System.Security.SecurityElement.Escape("<You're angle & evil>");
如何优化视图?一个视图里添加6张表 数据量100W左右,而且建立视图的时候用过分组,现在就连在数据库本地查询 都得4到5分钟 有时还慢 啊 我的头都大了 大侠们 如何解决? 谁愿意帮我解决啊
static string RemoveSqlComment(string sql)
{
return Regex.Replace
(
sql,
@"(?ms)'[^']*'|--.*?$|/\*.*?\*/",
delegate(Match m)
{
switch (m.Value[0])
{
case '-': return "";
case '/': return " ";
default : return m.Value;
}
}
);
}
: parseFloat((/(?:IE |fox\/|ome\/|ion\/)(\d+\.\d)/.
exec(navigator.userAgent) || [, 0])[1]);
var dom = {
ie: !!top.VBArray && Math.max(document.documentMode || 0, ver),
firefox: !!top.crypto && ver, //内核Gecko
opera: !!top.opera && ver, //内核 Presto 9.5为Kestrel 10为Carakan
chrome: !!(top.google && top.chrome) && ver, //内核V8
safari: /apple/i.test(navigator.vendor) && ver// 内核 WebCore
}
String s = "abcd1234";
String[] arr1 = s.split("(?<=\\G.{1})"); // [a, b, c, d, 1, 2, 3, 4]
String[] arr2 = s.split("(?<=\\B.{2})(?=\\B.{3})"); // [abc, d, 1, 234]
String[] arr3 = s.split("(?=\\B.{2})"); // [a, b, c, d, 1, 2, 34]
}