Ideone.com requires JavaScript to work.
fork(6) download loading...
  1. using System;
  2. using System.Text.RegularExpressions;
  3. using System.Collections.Specialized;
  4. class Program
  5. {
  6. static void Main() {
  7. string s1 = @"Jane"" ""Tarzan12"" Tarzan11@Tarzan22 {4 Tarzan34}";
  8. var myRegex = new Regex(@"{[^}]+}|""Tarzan\d+""|(Tarzan\d+)");
  9. var group1Caps = new StringCollection();
  10. Match matchResult = myRegex.Match(s1);
  11. // put Group 1 captures in a list
  12. while (matchResult.Success) {
  13. if (matchResult.Groups[1].Value != "") {
  14. group1Caps.Add(matchResult.Groups[1].Value);
  15. }
  16. matchResult = matchResult.NextMatch();
  17. }
  18. ///////// The six main tasks we're likely to have ////////
  19. // Task 1: Is there a match?
  20. Console.WriteLine("*** Is there a Match? ***");
  21. if(group1Caps.Count>0) Console.WriteLine("Yes");
  22. else Console.WriteLine("No");
  23. // Task 2: How many matches are there?
  24. Console.WriteLine("\n" + "*** Number of Matches ***");
  25. Console.WriteLine(group1Caps.Count);
  26. // Task 3: What is the first match?
  27. Console.WriteLine("\n" + "*** First Match ***");
  28. if(group1Caps.Count>0) Console.WriteLine(group1Caps[0]);
  29. // Task 4: What are all the matches?
  30. Console.WriteLine("\n" + "*** Matches ***");
  31. if (group1Caps.Count > 0) {
  32. foreach (string match in group1Caps) Console.WriteLine(match);
  33. }
  34. // Task 5: Replace the matches
  35. string replaced = myRegex.Replace(s1, delegate(Match m) {
  36. // m.Value is the same as m.Groups[0].Value
  37. if (m.Groups[1].Value == "") return m.Value;
  38. else return "Superman";
  39. });
  40. Console.WriteLine("\n" + "*** Replacements ***");
  41. Console.WriteLine(replaced);
  42. // Task 6: Split
  43. // Start by replacing by something distinctive,
  44. // as in Step 5. Then split.
  45. string[] splits = Regex.Split(replaced,"Superman");
  46. Console.WriteLine("\n" + "*** Splits ***");
  47. foreach (string split in splits) Console.WriteLine(split);
  48. Console.WriteLine("\nPress Any Key to Exit.");
  49. Console.ReadKey();
  50. } // END Main
  51. } // END Program
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZDsKY2xhc3MgUHJvZ3JhbQp7CnN0YXRpYyB2b2lkIE1haW4oKSAgewpzdHJpbmcgczEgPSBAIkphbmUiIiAiIlRhcnphbjEyIiIgVGFyemFuMTFAVGFyemFuMjIgezQgVGFyemFuMzR9IjsKdmFyIG15UmVnZXggPSBuZXcgUmVnZXgoQCJ7W159XSt9fCIiVGFyemFuXGQrIiJ8KFRhcnphblxkKykiKTsKdmFyIGdyb3VwMUNhcHMgPSBuZXcgU3RyaW5nQ29sbGVjdGlvbigpOwogICAgCk1hdGNoIG1hdGNoUmVzdWx0ID0gbXlSZWdleC5NYXRjaChzMSk7Ci8vIHB1dCBHcm91cCAxIGNhcHR1cmVzIGluIGEgbGlzdAp3aGlsZSAobWF0Y2hSZXN1bHQuU3VjY2VzcykgewogICBpZiAobWF0Y2hSZXN1bHQuR3JvdXBzWzFdLlZhbHVlICE9ICIiKSB7CiAgICAgICAgZ3JvdXAxQ2Fwcy5BZGQobWF0Y2hSZXN1bHQuR3JvdXBzWzFdLlZhbHVlKTsKICAgICAgICB9CiAgbWF0Y2hSZXN1bHQgPSBtYXRjaFJlc3VsdC5OZXh0TWF0Y2goKTsKfQoKLy8vLy8vLy8vIFRoZSBzaXggbWFpbiB0YXNrcyB3ZSdyZSBsaWtlbHkgdG8gaGF2ZSAvLy8vLy8vLwoKLy8gVGFzayAxOiBJcyB0aGVyZSBhIG1hdGNoPwpDb25zb2xlLldyaXRlTGluZSgiKioqIElzIHRoZXJlIGEgTWF0Y2g/ICoqKiIpOwppZihncm91cDFDYXBzLkNvdW50PjApIENvbnNvbGUuV3JpdGVMaW5lKCJZZXMiKTsKZWxzZSBDb25zb2xlLldyaXRlTGluZSgiTm8iKTsKCi8vIFRhc2sgMjogSG93IG1hbnkgbWF0Y2hlcyBhcmUgdGhlcmU/CkNvbnNvbGUuV3JpdGVMaW5lKCJcbiIgKyAiKioqIE51bWJlciBvZiBNYXRjaGVzICoqKiIpOwpDb25zb2xlLldyaXRlTGluZShncm91cDFDYXBzLkNvdW50KTsKCi8vIFRhc2sgMzogV2hhdCBpcyB0aGUgZmlyc3QgbWF0Y2g/CkNvbnNvbGUuV3JpdGVMaW5lKCJcbiIgKyAiKioqIEZpcnN0IE1hdGNoICoqKiIpOwppZihncm91cDFDYXBzLkNvdW50PjApIENvbnNvbGUuV3JpdGVMaW5lKGdyb3VwMUNhcHNbMF0pOwoKLy8gVGFzayA0OiBXaGF0IGFyZSBhbGwgdGhlIG1hdGNoZXM/CkNvbnNvbGUuV3JpdGVMaW5lKCJcbiIgKyAiKioqIE1hdGNoZXMgKioqIik7CmlmIChncm91cDFDYXBzLkNvdW50ID4gMCkgewogICBmb3JlYWNoIChzdHJpbmcgbWF0Y2ggaW4gZ3JvdXAxQ2FwcykgQ29uc29sZS5Xcml0ZUxpbmUobWF0Y2gpOwogICB9CgovLyBUYXNrIDU6IFJlcGxhY2UgdGhlIG1hdGNoZXMKc3RyaW5nIHJlcGxhY2VkID0gbXlSZWdleC5SZXBsYWNlKHMxLCBkZWxlZ2F0ZShNYXRjaCBtKSB7CiAgICAvLyBtLlZhbHVlIGlzIHRoZSBzYW1lIGFzIG0uR3JvdXBzWzBdLlZhbHVlCiAgICBpZiAobS5Hcm91cHNbMV0uVmFsdWUgPT0gIiIpIHJldHVybiBtLlZhbHVlOwogICAgZWxzZSByZXR1cm4gIlN1cGVybWFuIjsKICAgIH0pOwpDb25zb2xlLldyaXRlTGluZSgiXG4iICsgIioqKiBSZXBsYWNlbWVudHMgKioqIik7CkNvbnNvbGUuV3JpdGVMaW5lKHJlcGxhY2VkKTsKCi8vIFRhc2sgNjogU3BsaXQKLy8gU3RhcnQgYnkgcmVwbGFjaW5nIGJ5IHNvbWV0aGluZyBkaXN0aW5jdGl2ZSwKLy8gYXMgaW4gU3RlcCA1LiBUaGVuIHNwbGl0LgpzdHJpbmdbXSBzcGxpdHMgPSBSZWdleC5TcGxpdChyZXBsYWNlZCwiU3VwZXJtYW4iKTsKQ29uc29sZS5Xcml0ZUxpbmUoIlxuIiArICIqKiogU3BsaXRzICoqKiIpOwpmb3JlYWNoIChzdHJpbmcgc3BsaXQgaW4gc3BsaXRzKSBDb25zb2xlLldyaXRlTGluZShzcGxpdCk7CgpDb25zb2xlLldyaXRlTGluZSgiXG5QcmVzcyBBbnkgS2V5IHRvIEV4aXQuIik7CkNvbnNvbGUuUmVhZEtleSgpOwoKfSAvLyBFTkQgTWFpbgp9IC8vIEVORCBQcm9ncmFt
Success #stdin #stdout 0.08s 34176KB
stdin
Standard input is empty
stdout
*** Is there a Match? ***
Yes
*** Number of Matches ***
2
*** First Match ***
Tarzan11
*** Matches ***
Tarzan11
Tarzan22
*** Replacements ***
Jane" "Tarzan12" Superman@Superman {4 Tarzan34}
*** Splits ***
Jane" "Tarzan12" 
@
 {4 Tarzan34}
Press Any Key to Exit.
https://ideone.com/BwOG0S
[RexEgg] Best Regex Trick C#
language:
C# (gmcs 5.20.1)
created:
11 years ago
visibility:
secret

Share or Embed source code

Discover > Sphere Engine API

The brand new service which powers Ideone!

Discover > IDE Widget

Widget for compiling and running the source code in a web browser!

AltStyle によって変換されたページ (->オリジナル) /