int WordBackward(int p)
{
if (p == 0)
return -1;
int i = p - 1;
if (i == 0)
return 0;
if (Char.IsPunctuation(text[i]) || Char.IsSymbol(text[i]) || Char.IsWhiteSpace(text[i]))
{
for (; i >= 0; i--)
{
if (Char.IsLetterOrDigit(text[i]))
break;
}
for (; i >= 0; i--)
{
if (!Char.IsLetterOrDigit(text[i]))
break;
}
}
else
{
for (; i >= 0; i--)
{
if (!Char.IsLetterOrDigit(text[i]))
break;
}
}
i++;
if (i != p)
return i;
return -1;
}