我想用c#在文本檔案中的字串已知值之后查找并獲取字串
我的文本檔案:
function PreloadFiles takes nothing returns nothing
call Preload( "=== Save ===" )
call Preload( "Player: Michael" )
call Preload( "-load1 UvjkiJyjLlPN1o7FCAwQ0en80t769u5uBKAL1t0u0Cajk86WNmp83F" )
call Preload( "-load2 IMdOIPKGSDFXStx4Zd4LAvAaBmHW19rxsvSNF6kaObSFyBzGq8skYGuq0T1eW" )
call Preload( "-load3 Bd6MoyqnfDydBbwqGApWii3mabJpwNvjcwrKLI0r6UU2wadrMV1h7WQ8D6" )
call Preload( "-load4 D5kI18Flk5bJ4Oi7vQw33b5LHDXHGgJNYsiC6VNJDAHe1" )
call Preload( "KEY PASS: 3568" )
endfunction
我想在字串 "-load1" 、"-load2" 、"-load3" 、"-load4" 、"KEY PASS:" 之后獲取字串并在 5 Textbox 上填充它們
像那樣
UvjkiJyjLlPN1o7FCAwQ0en80t769u5uBKAL1t0u0Cajk86WNmp83F
IMdOIPKGSDFXStx4Zd4LAvAaBmHW19rxsvSNF6kaObSFyBzGq8skYGuq0T1eW
Bd6MoyqnfDydBbwqGApWii3mabJpwNvjcwrKLI0r6UU2wadrMV1h7WQ8D6
D5kI18Flk5bJ4Oi7vQw33b5LHDXHGgJNYsiC6VNJDAHe1
3568
請幫我
謝謝!
uj5u.com熱心網友回復:
您可以使用
string Substring (int startIndex);
喜歡:
string in1 = "-load1 UvjkiJyjLlPN1o7FCAwQ0en80t769u5uBKAL1t0u0Cajk86WNmp83F";
string out = in1.substring(7);
它回傳:
"UvjkiJyjLlPN1o7FCAwQ0en80t769u5uBKAL1t0u0Cajk86WNmp83F"
uj5u.com熱心網友回復:
可以使用Regex類(來自System.Text.RegularExpressions命名空間)。
模式示例:
- 對于
-loadN ...字串:" [A-Za-z0-9]*\" "。這意味著 Regex 應該查找以空格開頭的子字串,其中" "包含一定數量的字符(A-z)(任何情況下)或數字,(0-9)并以雙引號\"和空格結尾" "。比如你的UvjkiJyjLlP..."。 - 對于
KEY PASS: ...字串:@"KEY PASS: (\d{4})"。這意味著 Regex 應該找到一個包含"KEYPASS: "文本和一些string of 4 digits并且" "它們之間有空格的子字串。
但請注意,這是非常不安全的,因為 Regex 模式非常敏感。例如,
"-loaddd1 AbCdEfG..."(額外字符)"-load1 AbCdEfG..."(多個空格)"KEY PASS: 12345"(下面示例中的模式僅適用于 4 位數字,而不是 5 位或更多或更少)"-LOAD1 AbCdEfG..."(大寫)等。
這的人都將被忽略(最后,順便說一句,可以通過將解決RegexOptions.IgnoreCase成Regex.Match(line, pattern, RegexOptions.IgnoreCase))。其他的也可以解決,但你應該知道這種情況是可能的。
對于提供的問題示例,此代碼作業正常:
string loadPattern = " [A-Za-z0-9]*\" ";
string keyPassPattern = @"KEY PASS: (\d{4})";
List<string> capturedValues = new List<string>();
foreach (string line in File.ReadAllLines("Preload.txt"))
{
string s;
if (Regex.IsMatch(line, loadPattern) && line.Contains("-load"))
{
// Getting captured substring and trimming from trailing whitespace and quote
s = Regex.Match(line, loadPattern, RegexOptions.IgnoreCase).Value.Trim('\"', ' ');
capturedValues.Add(s);
}
else if (Regex.IsMatch(line, keyPassPattern))
{
// Just replacing "KEY PASS: " to empty string
s = Regex.Match(line, keyPassPattern).Value.Replace("KEY PASS: ", "");
capturedValues.Add(s);
}
}
結果:

uj5u.com熱心網友回復:
string s1 = "-load1 UvjkiJyjLlPN1o7FCAwQ0en80t769u5uBKAL1t0u0Cajk86WNmp83F";
String filter = s1.ToString();
String[] filterRemove = filter.Split(' ');
String Value1= filterRemove[1];
這樣,您將獲得
"UvjkiJyjLlPN1o7FCAwQ0en80t769u5uBKAL1t0u0Cajk86WNmp83F"value1
以同樣的方式,您可以對所有字串進行操作并將它們組合起來。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/315640.html
下一篇:將文本框放入陣列中
