1.C#中调用正则表达式
2.正则表达式主要用来断断传过来的字符串中是否存在大括号,中括号,单引号,双引号({}[]'")等六个特殊字符,且字字符串长度不超过20个字符
3.要求调用Regex.IsMatch返回false。
4.谢谢了。
2.正则表达式主要用来断断传过来的字符串中是否存在大括号,中括号,单引号,双引号({}[]'")等六个特殊字符,且字字符串长度不超过20个字符
3.要求调用Regex.IsMatch返回false。
4.谢谢了。
是这样的,我要实现的功能是
第一步:判断字符串长度如果超过20直接报错,不用断断里面包含不包含{}[]'"等字符
第二步:如果字符串长度如果不超过20,进一步来判断字符里是否包含{}[]'"等字符中的(只要包含其中的任何一个都算),如果包含则要求调用Regex.IsMatch返回false
这会说清楚了吧
return (str.Length>20)||!Regex.IsMatch(str,@"['""\[\]}{]");
using System;
using System.Text.RegularExpressions;class Program
{
static void Main()
{
string pattern = @"^[^'\""\[\]\{\}]{0,20}$";
Regex regex = new Regex(pattern);
foreach (string s in new string[]{ "abc", "who'm i", "[]" } )
{
Console.WriteLine("{0} -> {1}", s, regex.IsMatch(s));
}
}
}
/* 程序输出:
abc -> True
who'm i -> False
[] -> False
*/
return !(str.Length>20)||!Regex.IsMatch(str,@"['""\[\]}{]");//如果长度超过20或者包含{}[]'"字符,则返回false当然,4楼的正则是对的。
请看 msdn:
http://msdn.microsoft.com/zh-cn/library/3206d374.aspx.NET Framework 开发人员指南
限定符可以有 {n,} 这种写法,表示 {n,∞} 的意思。但没有 {,m} 这种写法。
不好意思,4楼的不正确: string pattern = @"^[^'\""\[\]\{\}]{,20}$";
Regex regex = new Regex(pattern);
string s = "abc";
Console.WriteLine("{0} -> {1}", s, regex.IsMatch(s));
// 输出:abc -> False主要是被1楼的写法我是这样加的可是没起到作用
^(?!.*?[{}\[\]\"']){,20} 误导了。
10楼的是正确的。
@"^(?=.*['\""\[\]\{\}]).{0,20}$"
u're right.
1.把XML数据读取到dataGridView1 中,显示出来,
读取方法
public void BindPLxml()
{
set.ReadXml("PlanList.xml"); //用Set来读取XML文件
dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//列标题居中显示
dataGridView1.DataSource = set.Tables[0].DefaultView;//设置datagridview的数据源
}
在窗体上,设置属性的时候,我在dataGridView1 中加了三个列,取的列名全为中文,可是读取到datagridview中,却总多一列,而那多的一列我在窗体上根本没有绑定列的字段,(XML中有四个结点,而我要求在dataGridView1中只显示三个,可是我上面写的他却就一直绑定四列),要怎么解决?