简单的正则表达式c#,替换和拆分问题

时间:2011-06-01 09:18:02

标签: c# regex replace split

我正在尝试使用Regex从字符串中删除“。

我在方法中收到一个字符串,我想把字符串分成字符串中的单词。

我的代码如下,希望你能看到我在做什么。

我遇到的问题是试图告诉Regex“我想要删除。我已经尝试了很多方法:我已经搜索了谷歌的答案,不得不求助于此。

search_string看起来像这样:blah="blah" la="la" ta="ta",最后我想要blah blah la la ta ta

public blahblah blahblah(blah blah, string search_string)
        {                
            Regex r = new Regex(@"/"+");

            string s3 = r.Replace(search_string, @" ");

            Regex r2 = new Regex(" ");
            Regex r3 = new Regex("=");

            string[] new_Split = { };

            string[] split_String = r2.Split(s3);


            foreach (string match in split_String)
            {
                new_Split = r3.Split(match);

            }

            //do blahblah stuff with new_Split[1] .. etc
            // new_Split[0] should be blah and new_Split[1] should 
            //     be blah with out "", not "blah"


            return blah_Found;

5 个答案:

答案 0 :(得分:3)

只需使用:

myString = myString.Replace( "\"", String.Empty );

[更新]

String.Empty或“”不是空格char。你写了这个

blah="blah" la="la" ta="ta"

您要转换为

blah blah la la ta ta

所以你还有白色空间。如果你想要这个:

blahblahlalatata

你也需要删除它们:

myString = myString.Replace( "\"", String.Empty ).Replace( " ", String.Empty );

for'='再做一遍,等等......

您的问题需要更精确。

答案 1 :(得分:0)

作为一个快速思考 - 并且可能完全是错误的树吠,但是你不想要像

这样的东西
Regex r = new Regex("(\".*\")");

例如,reg。表达“。*”

答案 2 :(得分:0)

这是一种方法。 它将搜索该格式的任何内容:SomeWord =“somethingelse”
并用SomeWord somethingelse替换它

var regex = new Regex(@"(\w+)=\""(.+)\""");
var result = regex.Replace("bla=\"bla\"", "$1 $2");

答案 3 :(得分:0)

我无法帮助你使用正则表达式 无论如何,如果您只需要删除=和“并且可以尝试分割单词:

string[] arr = s
    .Replace("="," ")
    .Replace("\""," ")
    .Split(new string[1] {" "}, StringSplitOptions.RemoveEmptyEntries);

答案 4 :(得分:0)

我在2次传球中做到了

string input = "blah=\"blah\" la=\"la\" ta=\"ta\"";

//replace " and = with a space
string output = Regex.Replace(input, "[\"=]", " ");
//condense the spaces
output = Regex.Replace(output, @"\s+", " ");

编辑:
根据评论不同地对待"=

string input = "blah=\"blah\" la=\"la\" ta=\"ta\"";

//replace " and = with a space
string output = Regex.Replace(input, "\"", String.Empty);
output = Regex.Replace(output, "=", " ");  

显然,正则表达式在这里有点矫枉过正。