c#截取字符串去两符号之间的字符
c#截取字符串去两符号之间的字符比如20*30*50取到30这个字符!加个问题那如果在sqlserver中有20*30*50该怎么取到呢?...
c#截取字符串去两符号之间的字符 比如 20*30*50 取到30这个字符!
加个问题 那如果在 sqlserver中 有20*30*50 该怎么取到呢? 展开
加个问题 那如果在 sqlserver中 有20*30*50 该怎么取到呢? 展开
4个回答
展开全部
上两个回答都是有点问题的 哈哈 一笑而过
//方法一
string str = "20*30*50";
Match m = Regex.Match(str, @"\*([\s\S]*?)\*");//这边*在正则是特殊字符 所以前面都加一个“\”
if (m.Success)
{
str = m.Result("$1");
}
else
{
str = "fail";
}
Response.Write(str);
//方法二
string str2 = "20*30*50";
str2 = str2.Substring(str2.IndexOf('*')+1);
Response.Write(str2.Substring(0,str2.LastIndexOf('*')));
至于你说的 SQL 你是判断是否存在那个字符么 可以用PATINDEX函数
where PATINDEX('%30%', 字段名)>0
补充一个 Regex的引用 using System.Text.RegularExpressions;
不对继续追问哈
追问
OK了 Thank you!
展开全部
自己写的函数,简单方便:
private string CopyStr(string s,string str_start,string str_end)
{
try
{
int i=s.IndexOf(str_start)+str_start.Length;
int j=s.IndexOf(str_end);
string str_value=s.Substring(i,j-i);
return str_value;
}
catch
{ return ""; }
}
调用:
string s="20*30*50";
s=CopyStr(s,"*","*");
数据库中:
截取函数substring
查找函数Charindex
自己写吧
private string CopyStr(string s,string str_start,string str_end)
{
try
{
int i=s.IndexOf(str_start)+str_start.Length;
int j=s.IndexOf(str_end);
string str_value=s.Substring(i,j-i);
return str_value;
}
catch
{ return ""; }
}
调用:
string s="20*30*50";
s=CopyStr(s,"*","*");
数据库中:
截取函数substring
查找函数Charindex
自己写吧
追问
你的也是对的! 不过只能采纳一个 抱歉了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C# code
string str = " 20*30*50";
str = str.Substring(str.IndexOf("*"),str.LastIndexOf("*"));
追问
substring 第一个是开始的位置 第二个是截取的长度 这截出来肯定是 *30*5啊 你试过没有??
追答
抱歉.刚才开会写着急了.以下附上完整C#和Sql代码
//C# code
string str = "20*30*50";
string f = "*";
MessageBox.Show(str.Substring(str.IndexOf(f) + f.Length).Substring(0, (str.Substring(str.IndexOf(f) + f.Length)).IndexOf(f)));
附图:
--Sqlserver code
declare @str varchar(100)
declare @f varchar(100)
set @str = '20*30*50'
set @f = '*'
select left(substring(@str,len(left(@str,CHARINDEX(@f,@str)))+1,LEN(@str)-len(left(@str,CHARINDEX(@f,@str)))+1),
CHARINDEX(@f,substring(@str,len(left(@str,CHARINDEX(@f,@str)))+1,LEN(@str)-len(left(@str,CHARINDEX(@f,@str)))+1))-1)
附图:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Regex.Match(input, @"(?<\*)[^*]+(?=\*)").Value;
追问
可以具体给个简单的控制台程序吗 正则不是很懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询