[英]Read string between certain character and after character
我希望用戶在遵循一些規則的同時創建自己的 POS 打印文件。 所以我有小Parameters.txt文件,可以由用戶修改。 在該文件中有一些這樣的字符串:
<CENTER><BOLD>My Header Text
Just some random no parameters input
from user
Date:<NOWDATE> Time:<NOWTIME>
我想將<>
之間的所有內容讀取為string1
,將<>
內的所有內容讀取為分隔的string2
。
所以<NOWDATE>
將是代碼識別的參數並插入 Date 而不是該字符串,但Date:
將只是用戶輸入的一些文本,它將作為字符串傳遞給 POS 打印機。
此外,用戶可以執行以下操作:
<CENTER><BOLD>Today<NOWDATE>:<NOWTIME>
因此,將插入一些 ESC/POS 命令而不是<CENTER>
來代替<BOLD>
,但Today
將作為普通字符串傳遞,沒有任何更改。 這可都在一個大的字符串,但我需要一種方法來區分內部串<>
和外<>
我知道如何在<>
讀取字符串,目前我正在玩這個
private static string FindStringInBetween(string Text, string FirstString, string LastString)
{
string STRFirst = FirstString;
string STRLast = LastString;
string FinalString;
int Pos1 = Text.IndexOf(FirstString) + FirstString.Length;
int Pos2 = Text.IndexOf(LastString);
FinalString = Text.Substring(Pos1, Pos2 - Pos1);
return FinalString;
}
但這只會在第一個<>
獲取字符串,而忽略其他所有內容。
你能推薦實現這一目標的最佳方法嗎?
最后我使用了 String.Replace 的組合
TempString = TempString.Replace("<CENTER>", Center);
並在發現它包含某些字符組合時拆分字符串。
if (TempString.Contains("<="))
{
var _parametar = "<=ReceiptNumber>";
string s = TempString;
int start = s.IndexOf("<=") + 2;
int end = s.IndexOf(">", start);
string _splitResult = s.Substring(start, end - start);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.