2013-09-26 3 views
1

Я использую регулярное выражение, чтобы найти шаблон внутри строки. После того, как я найду совпадение, я хотел бы удалить его из существующей строки.Regex Replace Match Найдено в String

Например:

starting string ex: "Billed Hours (.5);" 
converted string: "Billed Hours" 

Шаблон регулярного выражения Я использую это @ «([. Аз] +) $» - Не уверен, что это правильно, я хочу, чтобы проверить, что только целые числа или десятичные знаки находятся в круглых скобках. Если шаблон совпадает, то удалите круглые скобки, значение внутри, а также следующую полуточку.

Это то, что я до сих пор:

string testString = "Billed Hours (.5);" 
testString = Regex.Replace(testString, @"\([a-z.]+\);$", ""); 

Это в C#.

Любые идеи?

+0

В настоящее время отсутствуют цифры. – Jerry

+0

На каком языке вы используете? – JNYRanger

+1

Это будет в C#. – Aaron

ответ

1

Попробуйте регулярное выражение:

@"\s+\([^)]+\);$" 

И заменить ничем.

\s+ следует избегать необходимости обрезать пробелы, а [^)]+ соответствует любому персонажу, кроме закрывающего пара.

+0

Джерри, так что вы говорите, что я должен попробовать это? string newString = Regex.Replace (testString, @ "\ s + \ ([^)] + \); $", ""); Я по-прежнему ничего не заменил и ту же оригинальную строку. – Aaron

+0

@Aaron Uh, это не регулярное выражение, которое я предложил ... Я имел в виду это: 'string newString = Regex.Replace (testString, @" \ s + \ ([^)] + \); $ "," ");' – Jerry

+0

Написал неправильное Regex в моем ответе. Все работает благодаря Джерри. – Aaron

1

Рассмотрим ...

string testString= Regex.Replace(testString, @"\(\d*\.?\d*]*\);$", ""); 
+0

встречный пример: «Выставляемые счета (1.2.3.4.5)» ... – twalberg

+0

Хорошая точка ... обновил шаблон регулярного выражения. – gpmurthy

+0

Строка идентична и не удаляет круглые скобки, значение внутри или в виде двоеточия. Интересно, что я делаю неправильно .... – Aaron