簡體   English   中英

讀取某個字符和后面的字符之間的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM