Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# Regex match anything inside Parentheses

I want to match anything inside parentheses but the result must exclude the parentheses as well.

Examples:
Initialize(P90W)
Brake(45X)

Result:
990W
45X

note results without the Parentheses.

I've been trying to make this work but to no avail I tried a few variations but I know it's a simple thing I'm missing and I don't want to go using Replace to achieve it.

var item = "Brake(45X)"
Regex searchTerm = new Regex(@"\((.*)\)");
var value = (searchTerm.Match(item).Groups.Count > 0) ?
    searchTerm.Match(item).Groups[0].Value : string.Empty;
like image 365
Michael D. Irizarry Avatar asked Dec 15 '11 20:12

Michael D. Irizarry


People also ask

What is the full name of C?

In the real sense it has no meaning or full form. It was developed by Dennis Ritchie and Ken Thompson at AT&T bell Lab. First, they used to call it as B language then later they made some improvement into it and renamed it as C and its superscript as C++ which was invented by Dr.

What do you mean by C?

C is a structured, procedural programming language that has been widely used both for operating systems and applications and that has had a wide following in the academic community. Many versions of UNIX-based operating systems are written in C.

Is C language easy?

C is a general-purpose language that most programmers learn before moving on to more complex languages. From Unix and Windows to Tic Tac Toe and Photoshop, several of the most commonly used applications today have been built on C. It is easy to learn because: A simple syntax with only 32 keywords.

What is C language used for?

C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...


3 Answers

Some people accuse me of using zero width assertions all the time:

resultString = Regex.Match(subjectString, @"(?<=\().+?(?=\))").Value;

But they do exactly what you want. Don't capture what you don't want to capture.

like image 180
FailedDev Avatar answered Oct 18 '22 19:10

FailedDev


try regex @"\((.*?)\)"

EDIT: Also the result will be group 1 not 0, group 0 should contain the entire regex result, not the first parenthesized value

like image 29
Matthew Avatar answered Oct 18 '22 19:10

Matthew


Remove the inner paranthesis and try again:

new Regex(@"(\([^\)]+\))");

When you do not escape paranthesis in regex, if you are using group match it will only return the content within the paranthesis. So if you have, new Regex(@'(a)(b))', match 1 will be a and match 2 will be b. Match 0 is the entire match.

like image 3
Savas Vedova Avatar answered Oct 18 '22 17:10

Savas Vedova