我需要获取用户在文本框中输入的值
输入项
交易编号: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] = type
,result[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.", "");
}