Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Question regarding C#

Question regarding C#

Scheduled Pinned Locked Moved C#
csharptutorialquestion
16 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Member 11532095
    wrote on last edited by
    #1

    How to split a String on the basis of a specific word... which means a string: My Name Is Ali i want to split the string when ever Is comes.

    OriginalGriffO P A 3 Replies Last reply
    0
    • M Member 11532095

      How to split a String on the basis of a specific word... which means a string: My Name Is Ali i want to split the string when ever Is comes.

      OriginalGriffO Offline
      OriginalGriffO Offline
      OriginalGriff
      wrote on last edited by
      #2

      Use a regex:

      string input = "My Name Is Ali";
      string[] parts = Regex.Split(input, @"\sIs\s");

      Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
      "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

      R 1 Reply Last reply
      0
      • M Member 11532095

        How to split a String on the basis of a specific word... which means a string: My Name Is Ali i want to split the string when ever Is comes.

        P Offline
        P Offline
        Pete OHanlon
        wrote on last edited by
        #3

        When you split the string, are you wanting to split it so that "Is" is the start of the phrase or end of one?

        1 Reply Last reply
        0
        • OriginalGriffO OriginalGriff

          Use a regex:

          string input = "My Name Is Ali";
          string[] parts = Regex.Split(input, @"\sIs\s");

          Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

          R Offline
          R Offline
          Rob Philpott
          wrote on last edited by
          #4

          Any reason for the RegEx rather than just string.Split?

          Regards, Rob Philpott.

          OriginalGriffO 1 Reply Last reply
          0
          • R Rob Philpott

            Any reason for the RegEx rather than just string.Split?

            Regards, Rob Philpott.

            OriginalGriffO Offline
            OriginalGriffO Offline
            OriginalGriff
            wrote on last edited by
            #5

            Because the syntax you have to use to split on string(s) rather than character(s) is so damn clumsy: :laugh:

                    string\[\] parts = input.Split(new string\[\] { " Is " }, StringSplitOptions.None);
            

            Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

            "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
            "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

            R 1 Reply Last reply
            0
            • M Member 11532095

              How to split a String on the basis of a specific word... which means a string: My Name Is Ali i want to split the string when ever Is comes.

              A Offline
              A Offline
              Abdulnazark
              wrote on last edited by
              #6

              try this string s="test1 ali test2 ali"; string[] parts = s.Replace("ali", "/").Split('/');

              P 1 Reply Last reply
              0
              • A Abdulnazark

                try this string s="test1 ali test2 ali"; string[] parts = s.Replace("ali", "/").Split('/');

                P Offline
                P Offline
                Pete OHanlon
                wrote on last edited by
                #7

                And what happens when s contains "the bestiality displayed by the main character, Ali, suggests that there is a causality at stake here"?

                A 1 Reply Last reply
                0
                • P Pete OHanlon

                  And what happens when s contains "the bestiality displayed by the main character, Ali, suggests that there is a causality at stake here"?

                  A Offline
                  A Offline
                  Abdulnazark
                  wrote on last edited by
                  #8

                  static void Main(string[] args) { String s = "aaa ali jskdfhskjdfhk ali sjkhfkjsfhkjsdh ali"; var regex = new Regex("ali", RegexOptions.IgnoreCase); var s1 = regex.Replace(s, "/"); string[] parts = s1.Split('/'); for (int i = 0; i < parts.Length; i++) Console.WriteLine(parts[i]); Console.ReadLine(); }

                  P 1 Reply Last reply
                  0
                  • A Abdulnazark

                    static void Main(string[] args) { String s = "aaa ali jskdfhskjdfhk ali sjkhfkjsfhkjsdh ali"; var regex = new Regex("ali", RegexOptions.IgnoreCase); var s1 = regex.Replace(s, "/"); string[] parts = s1.Split('/'); for (int i = 0; i < parts.Length; i++) Console.WriteLine(parts[i]); Console.ReadLine(); }

                    P Offline
                    P Offline
                    Pete OHanlon
                    wrote on last edited by
                    #9

                    Nope, that's still wrong. Seriously, try it out with the sentence I gave you. There's only one occurrence of the word Ali in that sentence, but "ali" appears as a substring in other words. So, you should only get two phrases - your version returns 4 and you are corrupting the string so characters are being removed.

                    A 2 Replies Last reply
                    0
                    • P Pete OHanlon

                      Nope, that's still wrong. Seriously, try it out with the sentence I gave you. There's only one occurrence of the word Ali in that sentence, but "ali" appears as a substring in other words. So, you should only get two phrases - your version returns 4 and you are corrupting the string so characters are being removed.

                      A Offline
                      A Offline
                      Abdulnazark
                      wrote on last edited by
                      #10

                      i tried with your string 'My Name Is Ali' also and it return 'My Name Is'

                      P 1 Reply Last reply
                      0
                      • P Pete OHanlon

                        Nope, that's still wrong. Seriously, try it out with the sentence I gave you. There's only one occurrence of the word Ali in that sentence, but "ali" appears as a substring in other words. So, you should only get two phrases - your version returns 4 and you are corrupting the string so characters are being removed.

                        A Offline
                        A Offline
                        Abdulnazark
                        wrote on last edited by
                        #11

                        http://stackoverflow.com/questions/6025560/how-to-ignore-case-in-string-replace

                        1 Reply Last reply
                        0
                        • OriginalGriffO OriginalGriff

                          Because the syntax you have to use to split on string(s) rather than character(s) is so damn clumsy: :laugh:

                                  string\[\] parts = input.Split(new string\[\] { " Is " }, StringSplitOptions.None);
                          

                          Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

                          R Offline
                          R Offline
                          Rob Philpott
                          wrote on last edited by
                          #12

                          Fair point... There is a rather obvious overload missing.

                          Regards, Rob Philpott.

                          1 Reply Last reply
                          0
                          • A Abdulnazark

                            i tried with your string 'My Name Is Ali' also and it return 'My Name Is'

                            P Offline
                            P Offline
                            Pete OHanlon
                            wrote on last edited by
                            #13

                            You seem to be confusing me with the original poster. My string was "the bestiality displayed by the main character, Ali, suggests that there is a causality at stake here". Try that one.

                            A 1 Reply Last reply
                            0
                            • P Pete OHanlon

                              You seem to be confusing me with the original poster. My string was "the bestiality displayed by the main character, Ali, suggests that there is a causality at stake here". Try that one.

                              A Offline
                              A Offline
                              Abdulnazark
                              wrote on last edited by
                              #14

                              Now i got you, please try bellow

                              static void Main(string[] args)
                              {
                              String s = "the bestiality displayed by the main character, Ali, suggests that there is a causality at stake here";
                              string pattern = @"\bali\b";
                              string replace = "/";
                              var s1 = Regex.Replace(s, pattern, replace, RegexOptions.IgnoreCase);
                              string[] parts = s1.Split('/');
                              for (int i = 0; i < parts.Length; i++)
                              Console.WriteLine(parts[i]+ i.ToString());
                              Console.ReadLine();

                                  }
                              
                              Richard DeemingR 1 Reply Last reply
                              0
                              • A Abdulnazark

                                Now i got you, please try bellow

                                static void Main(string[] args)
                                {
                                String s = "the bestiality displayed by the main character, Ali, suggests that there is a causality at stake here";
                                string pattern = @"\bali\b";
                                string replace = "/";
                                var s1 = Regex.Replace(s, pattern, replace, RegexOptions.IgnoreCase);
                                string[] parts = s1.Split('/');
                                for (int i = 0; i < parts.Length; i++)
                                Console.WriteLine(parts[i]+ i.ToString());
                                Console.ReadLine();

                                    }
                                
                                Richard DeemingR Online
                                Richard DeemingR Online
                                Richard Deeming
                                wrote on last edited by
                                #15

                                Using the Regex.Split method[^] (as OG suggested[^]) is a better solution:

                                string input = "the bestiality displayed by the main character, Ali, suggests that there is a causality at stake here";
                                string pattern = @"\bali\b";

                                string[] parts = Regex.Split(input, pattern, RegexOptions.IgnoreCase);


                                "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                                "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                                A 1 Reply Last reply
                                0
                                • Richard DeemingR Richard Deeming

                                  Using the Regex.Split method[^] (as OG suggested[^]) is a better solution:

                                  string input = "the bestiality displayed by the main character, Ali, suggests that there is a causality at stake here";
                                  string pattern = @"\bali\b";

                                  string[] parts = Regex.Split(input, pattern, RegexOptions.IgnoreCase);


                                  "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                                  A Offline
                                  A Offline
                                  Abdulnazark
                                  wrote on last edited by
                                  #16

                                  thanks..

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • World
                                  • Users
                                  • Groups