2014-02-22 4 views
0

Как я могу получить это с помощью Regex, C#?Как получить строку от начала строки до первой открытой скобки?

string s = "1.8.4 * 03 (00000.000 * kWh)";

1.8.4 * 03

Everytime, строка имеет открывающийся кронштейн ...

Edit:

XX (XX)

XX является динамическими строками, скобки статических ...

+0

Это фиксированная длина, которую вы пытаетесь получить? Любое другое форматирование, которое необходимо рассматривать как часть строки? – panoptical

+0

Вы хотите использовать его только с помощью 'regex'? –

+0

XX (XX), XX - динамические строки –

ответ

1

Попробуйте (с "положительной") опережающего просмотра:

.+?(?=\() 

Демо:

http://regexr.com?38bnt

http://regex101.com/r/wD4oG1

+0

Спасибо за ответ, у demo была ошибка RSL ... –

+0

@ ErçinDedeoğlu Хммм, я не думаю, что понимаю, что вы имеете в виду ... Что такое ошибка RSL? –

+1

http://prntscr.com/2uus8u –

1

Это регулярное выражение произвело для вас:

^([^\(]*)\(

Это означает захват до ( с начала строки.

1

Я думаю, что для этого вам не нужно использовать RegEx.

Вы можете использовать методы String.IndexOf() и String.Substring() для достижения этого просто.

Попробуйте:

string s = "1.8.4*03(00000.000*kWh)"; 
int startIndex = s.IndexOf("("); 
if(startIndex>=0) 
{ 
s=s.Substring(0, startIndex); 
} 
Смежные вопросы