如"DDD(Y100) ddd"
截取 100(长度不确定的数字)
截取 100(长度不确定的数字)
解决方案 »
- 用oledb连接excel,GetSchema得到同一个Sheet两次的问题
- 请教个泛型类的问题
- TimeSpan如何赋值为0
- C# OleDb打开VFP的问题, 谢谢.
- web页面上的textbox如何使滚动条保持在底端?
- Datagrid常见但很头疼的问题(编辑时文本框宽度),肯定各位大侠和菜鸟!撒分中!
- 要改变等号运算符的行为,就是c++里的等号运算符重载,C#里怎么实现
- 一个简单的问题
- 有此控件无法调整大小,这种效果是如何实现的,小弟正在写一个小控件,谢了
- vb6可以做ACTIVEX控件,并且放入网页,在客户显示出来,C#可以做这样的控件吗?具体方法和步骤是什么样的?
- 关于this.invoke返回回调结果
- C#winform修改文件特定行内容
string num=str.Substring(str.IndexOf("(Y")+2,str.IndexOf(")")-str.IndexOf("(Y")-2);
char[] s = "DDD(Y100) ddd";int startIndex = -1;
int endIndex = -1;
for ( int i = 0; i < s.count; i++)
{
char c = s[i];
if (startIndex == -1 && c is a number) // c >= '0' && c <= '9'
{
startIndex = i;
continue;
} if (startIndex >= 0 && c is not a number)
{
endIndex = i - 1;
} if (startIndex >=0 && endIndex >=0)
{
//get substring from startIndex to endIndex
//output substring
//reset startIndex and endIndex to -1
}}
string tempStr = @"DDD(Y1005454) ddd"; string pattern = @"[^\d]*(\d*)";
string outPut = Regex.Replace(tempStr, pattern,"$1");
int begin = str.IndexOf("(Y");
int end = str.IndexOf(")");
string result = str.Substring(begin+2, end-5);
MessageBox.Show(result);
长度可变 格式不变
结果://100
除了括号里面的数字,其他都是不确定的,但括号里的数字前面一定有一个字母
int begin = str.IndexOf("(");
int end = str.IndexOf(")");
string result = str.Substring(begin+2, end-5);
MessageBox.Show(result);
string strBegin=""Y(Y100)-->9个 3%+0";";
string str = strBegin.Trim();
int begin = str.IndexOf("(");
int end = str.IndexOf(")");
string result = str.Substring(begin + 2, end - 3);
MessageBox.Show(result);
//结果:100刚才是考虑到你空格的问题,现在只要是 XXX(.....)XXXXX都能得到
private string f(string sk)
sk = "ddddjjoo(sdYsd4590ffg)dg";//假设你是这样的
string tempstr=sk;
int start=0;
int end = 0;
List<string> L = new List<string>();
for (int n = 0; n < 10;n++ )
{
L.Add(n.ToString());
}
for (int i = 0; i < sk.Length; i++)
{
string c = sk.Substring(i, 1);
if (L.Contains(c))
{
start = i;
break;
}
}
sk = sk.Substring(start);
for (int j = 0; j < sk.Length; j++)
{
string c = sk.Substring(j, 1);
if (!L.Contains(c))
{
end = j-1;
break; }
}
string result = null;
if (start != end)
{
result = tempstr.Substring(start,end+1);
}
return result;楼主这个好使,不好使你来砍我,啊哈哈
sk = "ddddjjoo(sdYsd4590ffg)dg";//假设你是这样的
string tempstr=sk;
int start=0;
int end = 0;
List<string> L = new List<string>();
for (int n = 0; n < 10;n++ )
{
L.Add(n.ToString());
}
for (int i = 0; i < sk.Length; i++)
{
string c = sk.Substring(i, 1);
if (L.Contains(c))
{
start = i;
break;
}
}
sk = sk.Substring(start);
for (int j = 0; j < sk.Length; j++)
{
string c = sk.Substring(j, 1);
if (!L.Contains(c))
{
end = j-1;
break; }
}
string result = null;
if (start != end)
{
result = tempstr.Substring(start,end+1);
}
return result;
}
少了对括号,汗
private string f(string sk)
{
sk = "ddddjjoo(sdYsd4590ffg)dg";//假设你是这样的
string tempstr=sk;
int start=0;
int end = 0;
List<string> L = new List<string>();
for (int n = 0; n < 10;n++ )
{
L.Add(n.ToString());
}
for (int i = 0; i < sk.Length; i++)
{
string c = sk.Substring(i, 1);
if (L.Contains(c))
{
start = i;
break;
}
}
sk = sk.Substring(start);
for (int j = 0; j < sk.Length; j++)
{
string c = sk.Substring(j, 1);
if (!L.Contains(c))
{
end = j-1;
break; }
}
string result = null;
if (start != end)
{
result = tempstr.Substring(start,end+1);
}
return result;
}
string tempStr = @"Y(Y100)-->9个 3%+"; string pattern = @"[^(]*\([^\d]*(?<value>[\d]*)\)[\s\S]*";
MatchCollection mc = Regex.Matches(tempStr, pattern, RegexOptions.Multiline|RegexOptions.IgnoreCase);
for (int i = 0; i < mc.Count; i++)
{
//string ss = mc[i].Value;//得到-7.0
//string ss = mc[i].Groups["id"].Value;
string text = mc[i].Groups["value"].Value;//为100
}
List<string> list = new List<string> { "Y(Y100)-->9个 3%+", "DDD(Y100) ddd" };
Regex reg = new Regex(@"(?i)(?<=\([a-z])\d+(?=\))");
foreach (string s in list)
Console.WriteLine(reg.Match(s).Value);
/*
100
100
*/
public String mySubString(String str){
String one=str.substring("DDD(Y".length());//取得:100) ddd
String two=one.substring(one.indexOf(")"));//取得:) ddd
String result=one.substring(0,one.length()-two.length());//以one为基础,从0开始,截取的长度=one-two
return result;
}
测试数据:DDD(Y10000000000000009) ddd 通过。