如何从“I”和“P”之间的文件名“I1P706.jpg”中获取值,所以在这种情况下它应该是“1”? 通常,该值的长度可以大于1 sumbol
答案 0 :(得分:2)
获取I和P的索引,然后从索引(可能需要+ 1)开始获取I和P之间的字符数(即P - I)的子字符串。
string myString = "I1P706.jpg"
int iIndex = myString.IndexOf("I");
int pIndex = myString.IndexOf("P");
string betweenIAndP = myString.Substring(iIndex + 1, pIndex - iIndex - 1);
答案 1 :(得分:2)
使用正则表达式:
var r = new Regex(@"I(\d+)P.*");
var match = r.Match(input, RegexOptions.IgnoreCase);
if (match.Success)
{
int number = 0; // set a default value
int.TryParse(match.Groups[1].Value, out number);
Console.WriteLine(number);
}
答案 2 :(得分:1)
我猜你想要两个数字:
using System.Text.RegularExpressions;
RegEx rx(@"I(\d+)P(\d+)\.jpg");
Match m = rx.Match("I1P706.jpg");
if(m.Success)
{
// m.Groups[1].Value contains the first number
// m.Groups[2].Value contains the second number
}
else
{
// not found...
}
答案 3 :(得分:1)
var input = "I1P706.jpg";
var indexOfI = input.IndexOf("I");
var result = input.Substring(indexOfI + 1, input.IndexOf("P") - indexOfI - 1);
答案 4 :(得分:0)
这个正则表达式将为您提供I和P之间的所有字符,忽略大小写。这将允许I和P之间的数字增长。
示例强>
string fileName = "I1222222P706.jpg";
Regex r = new Regex(@"(?<=I)(.*?)(?=P)",
RegexOptions.Singleline | RegexOptions.IgnoreCase);
var result = r.Split(fileName).GetValue(1);
答案 5 :(得分:-1)
string input = "I1P706.jpg";
// Get the characters by specifying the limits
string sub = input.Substring(1,3);
在这种情况下,输出将为1P
。
您还可以使用slice
功能
Slice(1,4)
的{p> Peaceful
将返回eac