2015-10-22 2 views
1

Я пытаюсь разделить строку (по индексу), когда я нахожу первую не альфа или пробел.Получение указателя первого символа без альфы в строке C#

My Regex действительно ржавый и пытается найти какое-то направление, чтобы заставить его работать.

Пример: «Платежи, полученные от 08/14/2015 $ 0.00», являются строкой. и я в состоянии найти первую цифру


string alphabet = String.Empty; 
string digit = String.Empty; 
int digitStartIndex; 

Match regexMatch = Regex.Match("Payments Received by 08/14/2015 $0.00", "\\d"); 

digitStartIndex = regexMatch.Index; 
alphabet = line.Substring(0, digitStartIndex); 
digit = line.Substring(digitStartIndex); 

Проблема лежит, когда строка как «Сумма этого периода + $ 57,00» я в конечном итоге с «Сумма этого периода + $»

Как с помощью Regex в C#, если я хочу также указать конкретные не-буквенно-цифровые символы для проверки, например $ + -?

Редактировать: Я ищу выход (переменные алфавит и цифра) в приведенном выше примере. Я изо всех сил стараюсь быть.
"Сумма Этот период"
"+ $ 57,00"

+0

Что такое вход и какой желаемый результат – Derek

+1

Ваш вопрос сформулирован очень смутно. Что именно вы ожидаете от вывода? –

ответ

1

разбить строку, как вы упоминаете , используйте регулярное выражение для поиска начальных букв альфа/пробела, а затем остальных.

var s = "Payments Received by 08/14/2015 $0.00"; 
var re = new Regex("^([a-z ]+)(.+)", RegexOptions.IgnoreCase); 
var m = re.Match(s); 
if (m.Success) 
{ 
    Console.WriteLine(m.Groups[1]); 
    Console.WriteLine(m.Groups[2]); 
} 

^Важно, чтобы найти персонажей в начале.

2

Ах, вы хотите, это, я думаю:

void Main() 
{ 
    var regex = new Regex(@"(.*?)([\$\+\-].*)"); 
    var a = "Payments Received by 08/14/2015 $0.00"; 
    var b = "Amount This Period + $57.00"; 

    Console.WriteLine(regex.Match(a).Groups[1].Value); 
    Console.WriteLine(regex.Match(a).Groups[2].Value); 
    Console.WriteLine(regex.Match(b).Groups[1].Value); 
    Console.WriteLine(regex.Match(b).Groups[2].Value); 
} 

Выходы:

Payments Received by 08/14/2015 
$0.00 
Amount This Period 
+ $57.00 
Смежные вопросы