Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 411
  • Last Modified:

Loop thorugh string in .net

I have
string like this

string mystring = This is the %EventName% and place is %ShelterName%

 I want to seperate the %EventName% ,%shelterName% as seperate string.

I am not sure how I can loop thorugh string and get the position of %.Please Help me out with this.
0
itinfo7
Asked:
itinfo7
  • 2
  • 2
1 Solution
 
jackDOTisenbergCommented:
Can you please provide a sample of the string that you need to parse? Depending on the structure of the string, you will be able to parse the string and pull out the different variables that you want.

If you post a sample, I may be able to write the parse statement for you.
0
 
itinfo7Author Commented:
string parsestring  = VCA is the %Animal% Hospital and It's located %texas%
0
 
itinfo7Author Commented:
Actually string is changeable but it would follow same format I am giving you.
0
 
jackDOTisenbergCommented:
This requires a little more code than I can do over my phone, but the following example should give you everything you need to get the variables you want.

Extract a value between two spaces in a string
0
 
käµfm³d 👽Commented:
You may consider using regular expressions for this. Be careful though:  regex is not a parser, so if you leave out an expected percent symbol, or if you other text actually contains a percent symbol, then you will end up with unexpected results. In that case, I might suggest creating some kind of "escape" character to denote a literal percent symbol vs. a percent that is part of a placeholder. Perhaps by doubling-up the percent (%%).

Here is an example of using regex. I have included checking for the doubled-up percent I mentioned.

using System;
using System.Text.RegularExpressions;

namespace _27665770
{
    class Program
    {
        static void Main(string[] args)
        {
            string mystring = "This is the %EventName% and place is %ShelterName%";

            foreach (Match m in Regex.Matches(mystring, "(?<!%)%[^%]+%"))
            {
                Console.WriteLine(m.Value);
            }

            Console.ReadKey();
        }
    }
}

Open in new window


If you don't think you'll encounter any percents which aren't part of a placeholder, then you can remove the "(?<!%)" part, but it shouldn't hurt anything to leave it in.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now