Как я могу получить значение из имени строки? - PullRequest
0 голосов
/ 23 декабря 2011

Как я могу получить значение из имени файла "I1P706.jpg", которое находится между "I" и "P", поэтому в этом случае оно должно быть "1"? в общем случае длина этого значения может быть больше 1 сумбола

Ответы [ 6 ]

2 голосов
/ 23 декабря 2011

Используйте регулярное выражение:

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 голосов
/ 23 декабря 2011

Получите индексы I и P, затем получите подстроку, начинающуюся с iIndex (может потребоваться + 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 голос
/ 23 декабря 2011
var input = "I1P706.jpg";
var indexOfI = input.IndexOf("I");
var result = input.Substring(indexOfI + 1, input.IndexOf("P") - indexOfI - 1);
1 голос
/ 23 декабря 2011

Полагаю, вам нужны оба числа:

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...
}
0 голосов
/ 23 декабря 2011

Это регулярное выражение даст вам все символы только от 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);
0 голосов
/ 23 декабря 2011
string input = "I1P706.jpg";
// Get the characters by specifying the limits
string sub = input.Substring(1,3);

В этом случае выходной сигнал будет 1P.

. Вы также можете выполнить функцию slice

Slice(1,4) из Peaceful и eac

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...