我的编程空间,编程开发者的网络收藏夹
学习永远不晚

.NET中怎么实现字符串解析操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

.NET中怎么实现字符串解析操作

本篇文章为大家展示了.NET中怎么实现字符串解析操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

首先是“token”,token是最小的信息单元,我们可以把它当作是一个字符串来处理。而多个token则组成了一个token group,token group之间的各token使用“-”进行分割。例如,以下便定义一个了token group:

jeffz-hello-world

一个token group可以用一个字符串数组或列表来表示,例如上面的字符串则表示一个包含三个token的token group,分别是jeffz,hello和world。多个token group则可以组成一整个字符串信息,我们把它称为text。一个text中的各个token group使用“--”进行分割,例如:

group1-hello--group2-world一个text可以认为是token group的数组或列表。因此,最终从一个text中提取到的信息,则可以用一个字符串数组的列表来表示。例如,以上的text的信息其实就类似于:

new List<string[]> { new string[] { "group1", "hello" }, new string[] { "group2", "world" } }

不过您想到这样一个问题:“-”是作为分割符使用的,但如果一个token中本身需要包含“-”又该如何呢?于是,我们又引入了单引号,被一组单引号包裹的token,其中所有的“-”被当作是普通的字符处理,不作为分隔符。例如:

jeffz-'hello-world'这样一个字符串所表示的text,它包含一个token group,其中有两个token:

new List<string[]> { new string[] { "jeffz", "hello-world" } }

但是,既然单引号也有特殊含义了,那么一个token中又如何表示一个单引号呢?于是乎,我们再定义一个规则,如果一个token中需要包含单引号的话,我们需要使用单引号来包含这个token,并且token中的单引号变成两个单引号。例如:

jeffz-'hello''''world'它所表示的数据即为:

new List<string[]> { new string[] { "jeffz", "hello''world" } }

text中包含四个单引号,但是表示的数据中只有两个单引号,这就是我们的“转义”规则。还有值得注意的是,如果token中需要包含单引号或“-”,那么这个token在表示的时候一定需要用一对单引号包裹起来——这也是为了“简化规则”。

这次的“趣味编程”便是希望写一个方法,从text中提取出“数据”,也就是一个List<string[]>,我们假设所有的输入都是正确的。

那么,这个规则又有什么含义呢?在我的项目中,这个字符串被当作是产品查询页面的URL,表示的自然是产品的查询条件。由于查询条件非常的丰富,还会根据不同的分类有所改变,因此在URL中表现查询条件非常的麻烦。例如,淘宝的查询页面URL便是这样的:

http://search2.taobao.com/browse/0/n-g,geytami-g,geytami-------1------7------------------4----0--------------------g,ojsxgzlsozsv64dsnfrwkwzvgaydalbzhe4tsxi---g,whflzr5rxy-------2-------b--40--coefp-0-all-0.htm?search_multi_condition=1&ssid=s1#ListView但是,这个URL对于某个人来说几乎没有任何可读性。普通用户对此的关注度自然小很多,但是这样的URL也会给开发人员的工作造成不小的麻烦。在我看来,有一个相对易读的规则还是很重要的。此外,据说URL中的关键字对于SEO也很有帮助(当然这点我不确定)。因此,我们设计了本文这种“自洽”的数据表示方式。如果您足够“敏感”的话,会发现作为特殊字符的单引号或是“-”符号,它们在URL上是不需要转义的——这也是我们为它们赋予特殊含义的原因。

于是现在,我们便可以使用这样的URL字符串来表示一个查询条件了:

cpu-3.0g--color-red-green-black--price-5000-8000--weight-'3-'--keywords-'levi''s'

这个text拆开后的得到的数据便是:

new List<string[]>{    new string[] { "cpu", "3.0g" },    new string[] { "color", "red", "green", "black" },    new string[]   { "price", "5000", "8000" },    new string[] { "weight", "3-" },    new string[] { "keywords", "levi's" },}

上述内容就是.NET中怎么实现字符串解析操作,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

.NET中怎么实现字符串解析操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

.NET中怎么实现字符串解析操作

本篇文章为大家展示了.NET中怎么实现字符串解析操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先是“token”,token是最小的信息单元,我们可以把它当作是一个字符串来处理。而多个toke
2023-06-17

JavaScript中怎么实现字符串操作

JavaScript中怎么实现字符串操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. 拆分字符串JavaScript中的 split() 方法使用指定的分隔符字符串将一个
2023-06-20

Python中怎么实现字符和字符串相关操作

这篇文章给大家介绍Python中怎么实现字符和字符串相关操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python字符(数位,字母和符号,比如$\@,%和*)是python程序的基本构件。每个程序都由字符构成。这些
2023-06-17

怎么解析正则表达式实现字符串的相关操作

怎么解析正则表达式实现字符串的相关操作,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。正则表达式实现字符串的相关操作主要是实现对于字符串的开始和结束的锚定,那么具体的操作过程
2023-06-17

Go字符串操作深入解析

这篇文章主要为大家介绍了Go字符串操作深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-01

Golang 字符串解析及操作指南

字符串解析和操作分割字符串:split(s, sep) 使用分隔符分割字符串,割token(s, delims) 使用分隔符集合分割字符串,割tags(s) 使用空白字符分割字符串。操作字符串:`toGo 字符串解析和操作指南在 Go 中
Golang 字符串解析及操作指南
2024-04-08

shell如何实现字符串操作

小编给大家分享一下shell如何实现字符串操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:工作中字符串操作举例 filename=/home/admi
2023-06-09

vbs如何实现字符串操作

这篇文章给大家分享的是有关vbs如何实现字符串操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。str="a|b|c|d" 要求写一段小程序得出: a|b|c|d b|c|d|a c|d|a|b d|a|b|c
2023-06-08

汇编语言中如何实现字符串操作

这篇文章将为大家详细讲解有关汇编语言中如何实现字符串操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。软件:emu8086语言:汇编语言(Assembly)注意:小编列出了字符串匹配和字符串
2023-06-21

.NET中怎么删除空白字符串

这篇文章将为大家详细讲解有关.NET中怎么删除空白字符串,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。检查空白字符检查空白字符很简单。所有你需要的代码就是:char wp = ; char
2023-06-17

C#怎么实现字符串包含字符串

本文小编为大家详细介绍“C#怎么实现字符串包含字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么实现字符串包含字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实例using System;name
2023-06-17

Linux strcat函数:字符串操作的全面解析

strcat 是一个 C 语言库函数,用于将两个字符串连接在一起函数原型:char *strcat(char *dest, const char *src);参数:dest:指向目标字符串的指针,该字符串将被追加到源字符串的末尾。目标字
Linux strcat函数:字符串操作的全面解析
2024-09-14

Python Hello World和字符串操作的实例分析

Python Hello World和字符串操作的实例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。开那么,让我们开始吧!如果你糊涂了,我建议你在单独的选项卡中打开下面
2023-06-17

Java怎么实现的文本字符串操作工具类实例

这篇文章将为大家详细讲解有关Java怎么实现的文本字符串操作工具类实例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例讲述了Java实现的文本字符串操作工具类。分享给大家供大家参考,具体如下:pac
2023-05-30

VB.NET中怎么实现字符串加密解密

这篇文章给大家介绍VB.NET中怎么实现字符串加密解密,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。VB.NET字符串加密解密的安全说明: 与 DES 相比,Rijndael(现在称为“高级加密标准”[AES])和“三
2023-06-17

fastjson怎么解析json字符串

可以使用Fastjson提供的JSON.parseObject()方法来解析JSON字符串。该方法接受两个参数,第一个参数是要解析的JSON字符串,第二个参数是目标对象的Class类型。以下是使用Fastjson解析JSON字符串的示例代码
2023-09-22

oracle怎么解析json字符串

OracleJSON解析方法Oracle提供多种解析JSON字符串的方法,包括:JSON_VALUE()函数:提取特定JSON值。JSON_TABLE()函数:将JSON转换为关系表。OracleJSON数据类型:存储和解析JSON文档。第三方库:提供额外功能,如验证和转换。最佳实践建议使用适当的数据类型,优化JSON路径,处理错误并考虑使用第三方库。
oracle怎么解析json字符串
2024-04-10

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录