c#截取字符串去两符号之间的字符

c#截取字符串去两符号之间的字符比如20*30*50取到30这个字符!加个问题那如果在sqlserver中有20*30*50该怎么取到呢?... c#截取字符串去两符号之间的字符 比如 20*30*50 取到30这个字符!
加个问题 那如果在 sqlserver中 有20*30*50 该怎么取到呢?
展开
 我来答
nice一介
2014-11-28 · 超过13用户采纳过TA的回答
知道答主
回答量:21
采纳率:0%
帮助的人:21.3万
展开全部

上两个回答都是有点问题的 哈哈 一笑而过

            //方法一
            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!
xtfnpgy
2014-11-28 · TA获得超过1784个赞
知道大有可为答主
回答量:1989
采纳率:76%
帮助的人:1106万
展开全部
自己写的函数,简单方便:
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
自己写吧
追问
你的也是对的!  不过只能采纳一个   抱歉了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Sxzy灬丨小柒
2014-11-28 · TA获得超过623个赞
知道小有建树答主
回答量:1223
采纳率:50%
帮助的人:278万
展开全部
 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)

附图:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wackyer
2014-11-28 · TA获得超过928个赞
知道小有建树答主
回答量:605
采纳率:71%
帮助的人:386万
展开全部
Regex.Match(input, @"(?<\*)[^*]+(?=\*)").Value;
追问
可以具体给个简单的控制台程序吗   正则不是很懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式