Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# Replace with Callback Function like in AS3

In AS3 you have a function on a string with this signature:

function replace(pattern:*, repl:Object):String 

The repl:Object can also specify a function. If you specify a function, the string returned by the function is inserted in place of the matching content.

Also, is it possible to get the the original string in which I want to replace things?

(In AS3 you can get the original string by

var input:String = arguments[2]; //in the callback function

)

I don't see a property in the Match class containing the original string...

like image 450
Lieven Cardoen Avatar asked Jan 14 '09 08:01

Lieven Cardoen


People also ask

What C is 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 ...

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.

Is C language easy?

Compared to other languages—like Java, PHP, or C#—C is a relatively simple language to learn for anyone just starting to learn computer programming because of its limited number of keywords.

What is C language?

C is an imperative procedural language supporting structured programming, lexical variable scope, and recursion, with a static type system. It was designed to be compiled to provide low-level access to memory and language constructs that map efficiently to machine instructions, all with minimal runtime support.


1 Answers

static void Main() {

    string s1 = Regex.Replace("abcdefghik", "e",
        match => "*I'm a callback*");

    string s2 = Regex.Replace("abcdefghik", "c", Callback);
}
static string Callback(Match match) {
    return "*and so am i*";
}

Note you have access to the matched data via the argument (and match.Value in particular, unless you want access to the regex groups (.Groups) etc).

like image 162
Marc Gravell Avatar answered Nov 09 '22 22:11

Marc Gravell