获取字符串中的值字符串 [英] Get value string in string

查看:198
本文介绍了获取字符串中的值字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的字符串:



 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);

解决方案

使用正则表达式:

  public   static 正则表达式regex =  new 正则表达式(
(?< = Saldo:\\\ \\ sRp \\\\ +)[\\\\,\\。] *(?=,\\止)
RegexOptions.Multiline
| RegexOptions.IgnorePatternWhitespace
| RegexOptions.Compiled
);
...
// 捕获InputText中的第一个Match(如果有)
匹配m = regex.Match(InputText);
if (m.Success)
{
string value = m.Value;
...


尝试正则表达式:

使用System; 
使用System.Text.RegularExpressions;

公共课程
{
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 [\\\,\。] +(?=,));
匹配匹配= regex.Match(str);
if(match.Success)
{
Console.WriteLine(match.Value);
}
}
}



学习:

1. 30分钟正则表达式教程 [ ^ ]

2. 在c#中使用正则表达式 [ ^ ]


原始字符串是:

 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 搜索 last ,在字符串中使用:

 int endIndex = strKeteran gan.LastIndexOf(,,startIndex); 



你会找到你想要的东西


I have string like this :

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.



I want get value ->

Saldo: Rp 3,482,350.00



Hope you help

What I have tried:

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

解决方案

Use a regex:

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;
   ...


Try the regex way:

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);
		}
	}
}


Learn:
1. The 30 Minute Regex Tutorial[^]
2. Use regex in c#[^]


The original string is:

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.


In the code you searh the first "," with

int endIndex = strKeterangan.IndexOf(",", startIndex);


this find the "," inside 3,482,350.00
if you use LastIndexOf to search the last "," in the string with:

int endIndex = strKeterangan.LastIndexOf(",", startIndex);


you will find what you want


这篇关于获取字符串中的值字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆