【Helping~~】 C# 正则表达式过滤字符串

Olive_Guo 2010-09-17 02:02:05
我的字符串是一个SQL语句,我想要把传入的参数名字给过滤出来,比如
string sql = @"select * from A left join B on A.ID=B.FID where id=@ID and name=@Name";
我要过滤出两个字符串 @ID,@Name
各位帮帮忙哈
...全文
108 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Olive_Guo 2010-09-17
  • 打赏
  • 举报
回复
是呀,题目中的string只是一个例子,主要是获取sql语句里的所有参数,组成列表另有他用
wackyboy 2010-09-17
  • 打赏
  • 举报
回复
具体情况具体分析吧
1,题目中这种情况:
"@[^\s]+"

2,"exec LIST @FROM_DT, @TO_DT"
"@[^,\s]+"

3,"exec LIST @FROM_DT=@FROM_DT, @TO_DT=@TO_DT"
"(?<==)@[^,\s]+"

Harrison_2009 2010-09-17
  • 打赏
  • 举报
回复
@\w*
vip__888 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyazhe 的回复:]
胖小子太可爱了。(?is)
[/Quote]
俺知道俺写错了。。。
vip__888 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]
C# code
MatchCollection mc = Regex.Matches(sql,@"@[^,\s]+");
foreach(Match m in mc)
{
m.Value就是你要的
}
[/Quote]
饺子 为什么我就写不好呢。。。
兔子-顾问 2010-09-17
  • 打赏
  • 举报
回复
胖小子太可爱了。(?is)
兔子-顾问 2010-09-17
  • 打赏
  • 举报
回复
MatchCollection mc = Regex.Matches(sql,@"@[^,\s]+");
foreach(Match m in mc)
{
m.Value就是你要的
}
vip__888 2010-09-17
  • 打赏
  • 举报
回复
(is?)=@(<^]>)
vip__888 2010-09-17
  • 打赏
  • 举报
回复
(is?=@(<^]>)

111,129

社区成员

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

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

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