【问题标题】:Getting some part of String c# [closed]获取String c#的一部分[关闭]
【发布时间】:2018-11-29 09:33:30
【问题描述】:

თანხისშეტანა ბარათი მარჯანიშვილის ფილიაალი 2 GISA CLASSIC GE******************08 თანხისშეტანაშემნახველიმარჯანიშვილისფილიალიჩემისეიფიge **************** 0018凝胶@ თანხისთანხისშეტანაბარათიცენტრალურიცენტრალურიmc标准ge **************** 0006美元კურსი - 2.5 @

这是我的字符串有点相似但它总是不同。我想从 English Letter 中获取字符串。在“V”中的第一个选项中 在“G”中的第二个选项中 在“M”中的第三个选项中。很容易说,当他看到英文字母时,我想从那时起得到所有的字符串。

【问题讨论】:

  • 好吧,你是说你有很多非罗马字符,你想抛弃它们,只保留第一个罗马字符的所有内容?
  • 您可以随时尝试使用正则表达式(可以在System.Text.RegularExpressions 获得)。
  • @john 是的,这就是我想要做的,我有非罗马字符,想从第一个罗马字符中获取所有字符串
  • 正则表达式中的类似:"^[a-zA-Z0-9]*$" 怎么样?
  • 我很困惑,您只需要信用卡信息吗?

标签: c# parsing


【解决方案1】:

使用正则表达式。我在每一行中添加了一个“\n”,看起来就像是从文件中读取代码一样。您可以使用 StreamReader 而不是 StringReader 从文件中读取。请参阅下面的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;

namespace ConsoleApplication51
{
    class Program
    {


        static void Main(string[] args)
        {
            string pattern = "[A-Z].*";

            string input =
                "თანხის შეტანა ბარათი მარჯანიშვილის ფილიალი VISA CLASSIC GE****************0082 GEL\n" +
                "თანხის შეტანა შემნახველი მარჯანიშვილის ფილიალი ჩემი სეიფი GE****************0018 GEL@\n" +
                "თანხის შეტანა ბარათი ცენტრალური ფილიალი MC STANDARD GE****************0006 USD კურსი - 2.5@\n";

            StringReader reader = new StringReader(input);
            string line = "";
            while((line = reader.ReadLine()) != null)
            {
                Console.WriteLine(Regex.Match(line, pattern).Value);
            }
            Console.ReadLine();

        }

    }



}

【讨论】:

  • 没关系,看起来你修好了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 2021-02-17
  • 2021-12-15
  • 2021-09-10
相关资源
最近更新 更多