简单正则表达式问题,回答后马上给分

feifanyuge 2004-07-16 04:33:51
我需要从"aaaa bbbbb CCCCC"这个字符串里提取字符aaaa、bbbb、cccc(当然它们是可变的,我在这里只是举个例子),我自己的函数是这样写的:

string pattern=@"^\S*\s*\S*\s*\S*\z";

regex=new Regex (pattern,RegexOptions.IgnoreCase);

Match match=regex.Match ("aaaa bbbbb CCCCC");
if(match.Success )
{}

我测试了,不行啊!

老大们请你们帮我改一改!感激!
...全文
222 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我叫小笨,我就是笨啊
XP HOME+VS.NET 2003下运行

static void Main()
{
string pattern=@"[a-zA-Z]+";
string str="aaaa bbbbb CCCCCC";
Regex regex=new Regex(pattern);
MatchCollection match=regex.Matches(str);
int count=match.Count;
Console.WriteLine(count.ToString());
for(int i=0;i<count;i++)
Console.WriteLine(match[i]);



Application.Run(new Form1());
}
output:
“CSDNRubbish.exe”: 已加载“c:\windows\assembly\gac\system.windows.forms\1.0.5000.0__b77a5c561934e089\system.windows.forms.dll”,未加载符号。
“CSDNRubbish.exe”: 已加载“c:\windows\assembly\gac\system\1.0.5000.0__b77a5c561934e089\system.dll”,未加载符号。
3
aaaa
bbbbb
CCCCCC
“CSDNRubbish.exe”: 已加载“c:\windows\assembly\gac\system.drawing\1.0.5000.0__b03f5f7f11d50a3a\system.drawing.dll”,未加载符号。
程序“[2772] CSDNRubbish.exe”已退出,返回值为 0 (0x0)。
feifanyuge 2004-07-17
  • 打赏
  • 举报
回复
To:小笨
哎,你到底测试过没有哦?count=0啊
wyfwyf2000 2004-07-16
  • 打赏
  • 举报
回复
谢谢您看的起我,试试这个

Regex r=new Regex(@"(?<text>\S+)",RegexOptions.Compiled);
for (Match m = r.Match(TextBox1.Text); m.Success; m = m.NextMatch())
{
string getstr=m.Result("${text}");
Response.Write(getstr +"<br>");
}
  • 打赏
  • 举报
回复
啊,我写的有问题,不能吧,我测试没问题啊

string pattern=@"[a-zA-Z]+";
string str="aaaa bbbbb CCCCCC";
Regex regex=new Regex(pattern);
MatchCollection match=regex.Matches(str);
int count=match.Count;
for(int i=0;i<count;i++)
Console.WriteLine(match[i]);

要不楼主再试试?:)
sdd330 2004-07-16
  • 打赏
  • 举报
回复
string pattern=@"^\S+\s+\S+\s+\S+$";
Regex regex =new Regex(pattern,RegexOptions.IgnoreCase);
Match match= regex.Match ("aaaa bbbbb CCCCC");
if(match.Success )
{Response.Write("OK!");}
^-^
feifanyuge 2004-07-16
  • 打赏
  • 举报
回复
其中这里的line就是我说的"aaaa bbbbb CCCCC"!!
feifanyuge 2004-07-16
  • 打赏
  • 举报
回复
我把代码贴出来:
private void UserAlter()
{
Regex regex=new Regex ("\r\n");
string[] lines=regex.Split (this.allusers.Text);


string pattern=@"\S*\s*\S*\s*\S* ";

regex=new Regex (pattern,RegexOptions.IgnoreCase);

string[,] userdata=new string [lines.Length,3];
int sequence=0;
string s=null;
bool wrong=false;


foreach(string line in lines)
{
if(line.Trim ().Length ==0) //空白行
{
s+="\r\n";
continue;
}
Match match=regex.Match (line);

if(match.Success )
{
string menpai = match.Groups [1].Value ;
string username = match.Groups [2].Value ;
string dianhua = match.Groups [3].Value ;


userdata[sequence,0]=menpai;
userdata[sequence,1]=username;
userdata[sequence,2]=dianhua;

sequence++;
s+=menpai+" "+username+" "+dianhua+"\r\n";
continue;

}

s+=line+"//此行书写错误\r\n";
wrong=true;

}
this.allusers.Text=s;

if(wrong) {this.Response.Write("<script>alert('格式出错啦,请检查后再试!')</script>");return;}


}
feifanyuge 2004-07-16
  • 打赏
  • 举报
回复
To: sdd330(小飞羊)
我知道你这种做法,能行!但是我想知道我现在问的这种方法的解决办法!
八爪鱼-杭州 2004-07-16
  • 打赏
  • 举报
回复
string pattern=@"^\S*\s*\S*\s*\S*\z";
我肯定是这句话的问题。请大家就帮我改这句
-------------------------
如果你要match一个字符串的话,就这样写:
Regex.Match(" cde fgh","[^ ]+").Value
八爪鱼-杭州 2004-07-16
  • 打赏
  • 举报
回复
[a-zA-Z]+
[ ]+

这两种写法都不对,我刚测试过了
-----------------------------------
贴出你测试的代码
sdd330 2004-07-16
  • 打赏
  • 举报
回复
string s = "aaaa bbbbb CCCCC";
Regex r= new Regex(" +");
string[] ss= r.Split(s);
Response.Write(ss[1]+","+ss[2]+","+ss[3]);
feifanyuge 2004-07-16
  • 打赏
  • 举报
回复
string pattern=@"^\S*\s*\S*\s*\S*\z";
我肯定是这句话的问题。请大家就帮我改这句!
feifanyuge 2004-07-16
  • 打赏
  • 举报
回复
请大家注意,字符之间的空格,是不止一个的!
八爪鱼-杭州 2004-07-16
  • 打赏
  • 举报
回复
你的字符串的分隔字符是什么?
feifanyuge 2004-07-16
  • 打赏
  • 举报
回复
[a-zA-Z]+
[ ]+

这两种写法都不对,我刚测试过了
codeangel 2004-07-16
  • 打赏
  • 举报
回复
string pattern"[a-zA-Z]";
八爪鱼-杭州 2004-07-16
  • 打赏
  • 举报
回复
String[] strs=Regex.Split(("aaaa bbbbb CCCCC","[ ]+");
  • 打赏
  • 举报
回复
[a-zA-Z]+

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧