ulungss Ответов: 3

Получить строку значения в строке


У меня есть такая струна :

Isi Voucher Regular 10K seharga Rp 10,400.00 pada 13/12/16 16:52 ke 6285811111111 SUKSES, Saldo: Rp 3,482,350.00, TID:0071272220111111111.


Я хочу получить ценность - >
Saldo: Rp 3,482,350.00


Надеюсь, вы поможете

Что я уже пробовал:

int startIndex = strKeterangan.IndexOf("Rp");
 int endIndex = strKeterangan.IndexOf(",", startIndex);
 sisaStok = strKeterangan.Substring(startIndex, endIndex - startIndex);

3 Ответов

Рейтинг:
2

Member 7870345

Исходная строка:

Isi Voucher Regular 10K seharga Rp 10,400.00 pada 13/12/16 16:52 ke 6285811111111 SUKSES, Saldo: Rp 3,482,350.00, TID:0071272220111111111.

В коде вы ищете первый "," с
int endIndex = strKeterangan.IndexOf(",", startIndex);

это найти", " внутри 3,482,350. 00
если вы используете LastIndexOf для поиска последний ", "в строке с:
int endIndex = strKeterangan.LastIndexOf(",", startIndex);

вы найдете то, что хотите


Рейтинг:
14

Peter Leow

Попробуйте метод регулярных выражений:

using System;
using System.Text.RegularExpressions;

public class Program
{
	public static void Main()
	{
		string str = "Isi Voucher Regular 10K seharga Rp 10,400.00 pada 13/12/16 16:52 ke 6285811111111 SUKSES, Saldo: Rp 3,482,350.00, TID:0071272220111111111.";
		Regex regex = new Regex(@"Saldo: Rp [\d,\.]+(?=,)");
		Match match = regex.Match(str);
		if (match.Success)
		{
			Console.WriteLine(match.Value);
		}
	}
}

Учить:
1. 30-Минутный Учебник По Регулярным Выражениям[^]
2. Используйте регулярное выражение в c#[^]


ulungss

милый... отличный. большое спасибо.. Питер.

Рейтинг:
1

OriginalGriff

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

public static Regex regex = new Regex(
      "(?<=Saldo:\\sRp\\s+)[\\d,\\.]*(?=,\\s)",
    RegexOptions.Multiline
    | RegexOptions.IgnorePatternWhitespace
    | RegexOptions.Compiled
    );
...
// Capture the first Match, if any, in the InputText
Match m = regex.Match(InputText);
if (m.Success)
   {
   string value = m.Value;
   ...


ulungss

что делать, если строка, как это :
XR50. 0838933222221 Hrg=48800 SUKSES SN: 5186121284136. Сиса Сальдо РП.17110142

и я хочу получить значение 17110142 ?, дайте мне teqnique, когда я получу все Saldo.

надеюсь, вы поможете

OriginalGriff

Это тривиальная модификация-вы должны быть в состоянии решить ее сами.
Получить копию Эспрессо
http://www.ultrapico.com/Expresso.htm
Это бесплатно, и он проверяет и генерирует регулярные выражения.
Это поможет вам разрабатывать и тестировать регулярные выражения.
Если вы не можете получить его, покажите нам, что вы пытались.