我需要获取用户在文本框中输入的值

输入项


  交易编号:100000527054518 PNR编号:6755980353火车编号/
  名称:18615 / KRIYA YOGA EXP预订日期:2016年6月7日班级:
  SLEEPER CLASS配额:一般旅行日期:2016年6月13日从:
  HWH To:RNC登机日期:HWH登机日期:2016年6月13日
    保留至:RNC距离:416 KM预定出发时间:22:10
    预计抵达时间:2016年6月14日(07:05 Hrs)总票价:? 500.0&
  SC :? 23.0成人:2&儿童:0旅客详细资料序号名称
  年龄性别优惠状态教练座位/泊位/ WL没有当前
  状态教练座位/卧铺/ WL编号ID类型/编号1 AYAN
  PAL 40公头CNF S7 49(LB)CNF S7 49(LB)


string TransactionID="";
string pnrno="";
string trainno="";
string dateofbooking="";
string class="";
string Quota="";


输出值

TransactionID=100000527054518 ;
pnrno=6755980353;
trainno=18615;
dateofbooking=13-Jun-2016;
class=SLEEPER CLASS;
Quota=GENERAL;


AND如果类别为AC 3层

TransactionID=100000527054518 ;
    pnrno=6755980353;
    trainno=18615;
    dateofbooking=13-Jun-2016;
    class=AC 3 TIER;
    Quota=GENERAL;


请帮助我从现在开始坚持

最佳答案

这种方法有效,但仍然依赖于文本,一个错误的':'将使您的应用程序崩溃,

string source = @"Transaction ID : 100000527054518 PNR No. : 6755980353 Train No. / Name : 18615 / KRIYA YOGA EXP Date of Booking : 07-Jun-2016 Class : SLEEPER CLASS Quota : GENERAL Date of Journey : 13-Jun-2016 From : HWH To : RNC Boarding At : HWH Date Of Boarding : 13-Jun-2016 Reservation Up to : RNC Distance : 416 KM Scheduled Departure : 22:10 Scheduled Arrival : 14-Jun-2016 ( 07:05 Hrs ) Total Fare : ? 500.0 & SC : ? 23.0 Adult : 2 & Child : 0 Details of Passengers S.No.Name
                        Age Gender Concession Status Coach Seat / Berth / WL No Current Status Coach Seat / Berth / WL No ID Type / ID No. 1 AYAN PAL 40 Male CNF S7 49(LB) CNF S7 49(LB)";

        string[] sourceArray = source.Split(':');

        string TransactionID = sourceArray[2].Split(' ')[0];
        string pnrno = "";
        string trainno = "";
        string dateofbooking = "";
        string classStr="";
        string Quota = "";


选项1

如果您有权访问源文本,则应这样写:


  “事务ID:100000527054518 | PNR号:6755980353 | ...”


之后,您用split('|')分割文本,之后下一个分割将是(':'),所以您将得到的是result[0] = typeresult[1] = value

之后循环:

for(int i = 0 ; i < sourceArray.Count ; i++)
{
   string[] resultArr = sourceArray.Split(':');
   if(resultArr[0].Equals("Transaction ID")) TransactionId = resultArr[1];
   else if ...
}


如果您无法编辑源,则需要使用索引:

int transactionIndex = source.IndexOf("Transaction ID");
int pnrIndex = source.IndexOf("PNR No.");


从索引取值从:到:减去下一个类型

例如第一个为100000527054518 PNR号-PNR号= 100000527054518

选项2,我认为是最好的

使用常规表达式

string transactionId;

string source = @"Transaction ID : 100000527054518 PNR No. : 6755980353 Train No. / Name : 18615 / KRIYA YOGA EXP Date of Booking : 07-Jun-2016 Class : SLEEPER CLASS Quota : GENERAL Date of Journey : 13-Jun-2016 From : HWH To : RNC Boarding At : HWH Date Of Boarding : 13-Jun-2016 Reservation Up to : RNC Distance : 416 KM Scheduled Departure : 22:10 Scheduled Arrival : 14-Jun-2016 ( 07:05 Hrs ) Total Fare : ? 500.0 & SC : ? 23.0 Adult : 2 & Child : 0 Details of Passengers S.No.Name
                        Age Gender Concession Status Coach Seat / Berth / WL No Current Status Coach Seat / Berth / WL No ID Type / ID No. 1 AYAN PAL 40 Male CNF S7 49(LB) CNF S7 49(LB)";

Regex transactionRegex = new Regex(@"Transaction ID : [0-9]+ PNR No.");
Match match = transactionRegex.Match(source);

if (match.Success)
{
   transactionId = match.Value.Replace("Transaction ID :", "").Replace("PNR No.", "");
}

07-26 03:01