Я ищу способ поиска строки для точного совпадения или совпадения всего слова. RegEx.Match
и RegEx.IsMatch
, кажется, не приводят меня туда, где я хочу быть.
Рассмотрите следующий сценарий:
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();
}
}
}
Вывод приведенного выше кода:
// 34.37
// Press any key to continue...
Проблема в том, что мне не нужен SUBTOTAL
, но IndexOf
находит первое вхождение слова TOTAL
, которое находится в SUBTOTAL
, что затем дает неверное значение 34,37.
Итак, вопрос в том, есть ли способ заставить IndexOf
найти только точное совпадение или есть другой способ заставить это точное совпадение всего слова, чтобы я мог найти индекс этого точного совпадения, а затем выполнить с ним какую-то полезную функцию. RegEx.IsMatch
и RegEx.Match
, насколько я могу судить, просто boolean
поиски. В этом случае недостаточно просто знать, что точное совпадение существует. Мне нужно знать, где он находится в строке.
Любой совет будет принят во внимание.
str.IndexOf(" TOTAL ");
Но это некрасиво. - person Bun   schedule 26.06.2014