【发布时间】:2010-09-27 19:33:03
【问题描述】:
语言 = C#.NET
任何介于 [STX] 和 [ETX] 之间的东西都必须被接受,其余的东西必须被拒绝。
string startparam = "[STX]"; string endparam = "[ETX]"; String str1 = "[STX]some string 1[ETX]"; //Option 1 String str2 = "sajksajsk [STX]some string 2 [ETX] saksla"; //Option 2 String str3 = "[ETX] dksldkls [STX]some string 3 [ETX]ds ds"; //Option 3 String str4 = "dksldkls [STX]some string 4.1[ETX]ds ds [STX] some string 4.2[ETX] jdskjd"; //Option 4 /* the various strings can be appended and converted to a single string using string builder or treat them as different strings*/ ProcessString (string str , string startparam , string endparam) { //What To Write here using RegEX or String Functions in c# } /* The output after passing these to a ProcessString () */ /* Append Output To a TextBox or Append it to a String using For Loop.*/ /* Output Required */ some string 1 some string 2 some string 3 some string 4.1 some string 4.2
================================================ ===============================
编辑 2
Language = C#
string str = "
[STX]some string 1[ETX]
sajksajsk [STX]some string 2 [ETX] saksla
[ETX] dksldkls [STX]some string 3 [ETX]ds ds
dksldk[STX]ls [STX]some st[ETX]ring 4.1[ETX]ds ds [STX]some string 4.2[ETX] jdskjd";
如果字符串数组是单个字符串,我如何获得相同的输出
/* output */
some string 1
some string 2
some string 3
some string 4.1
some string 4.2
/*case 1*/
the above string can be "[STX] djkdsj [STX]dskd1[ETX] dsnds[ETX]"
the output should be just "dskd1"
/*case 2*/
the above string can be "[STX] djkdsj [STX]dskd1[ETX] ddd"
the output should be just "dskd1"
/*case 3*/
the above string can be " kdsj [STX]dskd1[ETX] dsnds[ETX]"
the output should be just "dskd1"
/*case 4*/
the above string can be "[STX] djk[STX]dsj [STX]dskd2[ETX] ddd"
the output should be just "dskd2"
The real problem comes when [STX] followed by [STX] i want to consider the newer [STX] and start string processing from the newer [STX] occurance. Eg. Case 2 above
================================================ ===============================
编辑 3:新请求
语言 = C#
如果我想要 [STX] 和 [STX] 之间的数据也可以这样做。
新的 RegEx 将在 1. [STX] 部分数据 [STX] 2. [STX]一些数据[ETX]
例如。
/* the above string can be */
"[STX] djk[STX]dsj [STX]dskd2[ETX] ddd"
/* the output should be just */
djk
dsj
dskd2
由于 [STX] 意味着传输已经开始,所以我也想在 STX 之间提取数据。
【问题讨论】:
-
请将 EDIT 3: New Request 放入新问题并从此处删除。
-
我正在寻找一种在发送 stx-etx 命令后处理来自串行端口的日期的方法。好像你已经超越了那部分。如果您能对此提出一些想法,那就太好了