Poszukuję sposobu na wyszukanie ciągu znaków dla dopasowania dokładnego lub dopasowania całego słowa. RegEx.Match
i RegEx.IsMatch
wydaje mi się, że nie dostaję mnie tam, gdzie chcę być.
Rozważmy następujący scenariusz:string.IndexOf wyszukiwanie całego słowa meczu
namespace test
{
class Program
{
static void Main(string[] args)
{
string str = "SUBTOTAL 34.37 TAX TOTAL 37.43";
int indx = str.IndexOf("TOTAL");
string amount = str.Substring(indx + "TOTAL".Length, 10);
string strAmount = Regex.Replace(amount, "[^.0-9]", "");
Console.WriteLine(strAmount);
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}
}
Wyjście powyższego kodu jest:
// 34.37
// Press any key to continue...
Problemem jest to, nie chcę SUBTOTAL
, ale IndexOf
znajduje pierwsze wystąpienie słowa TOTAL
który jest w SUBTOTAL
, który następnie daje niepoprawną wartość 34,37.
Pytanie brzmi, czy istnieje sposób na wymuszenie IndexOf
znalezienia tylko dokładnego dopasowania lub czy istnieje inny sposób wymuszenia tego dokładnego dopasowania całego słowa, aby można było znaleźć indeks tego dokładnego dopasowania, a następnie wykonać kilka użytecznych z nim funkcjonować. RegEx.IsMatch
i RegEx.Match
są, o ile mogę powiedzieć, po prostu boolean
wyszukiwania. W tym przypadku nie wystarczy znać dokładnego dopasowania. Muszę wiedzieć, gdzie istnieje w ciągu znaków.
Każda rada byłaby doceniona.
'str.IndexOf (" TOTAL ");' Ale jest brzydka. – Bun