Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 复杂的字符串处理-对我来说很复杂_C#_String - Fatal编程技术网

C# 复杂的字符串处理-对我来说很复杂

C# 复杂的字符串处理-对我来说很复杂,c#,string,C#,String,我正在调用一个web服务,我得到的只是一个巨大的文本块。让我自己来处理。问题是并非所有线路都必须相同。它们每个都有2或3个部分,它们是相似的。下面是最常见的例子 text1 [text2] /text3/ text1/test3 text1[text2]/text3 text1 [text2] /text /3 here/ text1[text2]/text3/ text1/test3 text1[text2]/text3 text1[text2]/text/3此处/ 我不太清楚如何处理这个问题

我正在调用一个web服务,我得到的只是一个巨大的文本块。让我自己来处理。问题是并非所有线路都必须相同。它们每个都有2或3个部分,它们是相似的。下面是最常见的例子

text1 [text2] /text3/ text1/test3 text1[text2]/text3 text1 [text2] /text /3 here/ text1[text2]/text3/ text1/test3 text1[text2]/text3 text1[text2]/text/3此处/ 我不太清楚如何处理这个问题。我不太擅长做任何操作字符串的高级工作

我在想使用正则表达式可能有用,但也不太确定。如果我能把这三个部分分开,那么从那开始做剩下的就容易多了。只是我知道如何处理的主要三个部分似乎没有任何一致性

编辑:谢谢你提到我实际上没有说我想做什么

基本上,我想把这3段文字分割成各自的字符串,这样就基本上把它从一个字符串转换成3个字符串的数组

string[0] = text1 string[1] = text2 string[2] = text3 字符串[0]=text1 字符串[1]=text2 字符串[2]=text3 下面是我从一个电话中得到的一些文本作为例子

スルホ基 [スルホき] /(n) sulfo group/ 鋭いナイフ [するどいナイフ] /(n) sharp knife/ 鋭い批判 [するどいひはん] /(n) sharp criticism/ スルナーイ /(n) (See ズルナ) (obsc) surnay (Anatolian woodwind instrument) (per:)/zurna/ スルピリン /(n) sulpyrine/ スルファミン /(n) sulfamine/ 剃る [そる(P);する] /(v5r,vt) to shave/(P)/ スルホ基 [スルホき] /(n) 磺基/ 鋭いナイフ [するどいナイフ] /(n) 尖刀/ 鋭い批判 [するどいひはん] /(n) 尖锐的批评/ スルナーイ /(n) (见ズルナ) (obsc)surnay(安纳托利亚木管乐器)(per:)/zurna/ スルピリン /(n) 苏比林/ スルファミン /(n) 磺胺/ 剃る [そる(P) );する] /(v5r,vt)剃须/(P)/ 作为示例的第一行,我想把它拉到一个数组中

string[0] = スルホ基 string[0] = [スルホき] string[0] = /(n) sulfo group/ 字符串[0]=スルホ基 字符串[0]=[スルホき] 字符串[0]=/(n)磺基/
这些示例似乎有点随机,必须有某种顺序,服务是否有规范?如果没有,我建议提供更多示例,以便我们了解规则。

阅读此处的一些信息,看看是否可以使用一些概念解决输入解析问题

如果每行上的组都有一定的顺序,那么您可以使用正则表达式将组分开

编辑:在看到您的示例后,您可以使用正则表达式,打破某些特定的分隔符。测试理论可能需要半个小时:选择一个免费的正则表达式测试员,制作一个只隔离其中一个组的正则表达式,并抽取一些示例行。如果它在您拥有的真实数据,然后展开它,看看是否还可以隔离其他组


不过,我应该提到,如果数据中存在任何类型的异常(而且经常存在),您的正则表达式将崩溃或变成一场噩梦。因此,在解决这些异常之前,请进行长时间的艰苦测试。如果您发现数据中开始出现异常,则需要选择某种解析算法(我上面提到的FSM是一种模式,如果您实现解析机制,您可以遵循它)。

最愚蠢的答案是“使用正则表达式”。但更好的方法需要更多的信息。

您实际上想要做什么处理?哇,读了第一小段,看起来这可能是一件值得一看的事情。嘿,当您第一次看到它时,它有点眼花缭乱,但您可以大大简化它。对于大量的行,用正则表达式解析它非常慢。只有如果您将这些行作为一个字符串。如果这些行获得一些标准的拆分符号,请使用string.split()函数。某种方法是为这些行编写自己的(反)序列化格式化程序,它将文本反序列化为基于数组的对象。