C#字符串和正则表达式参考手册(笔记)
来源:互联网 发布:个人工作计划安排软件 编辑:程序博客网 时间:2024/05/21 09:23
String类和StringBuilder类
一、 格式化字符串
Publi1c string ToString(string format,IformatProvider provider)
第一个参数是格式说明符,第二个参数是格式提供者。如果缺少format字符串,就调用方法System.Iconvertible.ToString(),它公包含了IformatProvider参数,并且作用一个默认格式。如果没有提供任何参数,System.Object.ToString()将使用一个默认的格式说明符和一个默认的格式提供者
格式说明符和用法示例
格式字符
格式说明
举例
输出
C或c
货币记数
1000.ToString(“C”);
(-1000).ToString(“C”);
$1,000.00
($1,000.00)
D或d
小数记数
1000.ToString(“D”);
1000
E或e
科学记数(幂)
100000.ToString(“E”);
1.00000E+005
F或f
定点记数
1000.ToString(“F4”);
1000.ToString(“F0”);
1000.0000
1000
G或g
通用记数
1000.ToString(“G”);
1000
N或n
数字形式
1000.ToString(“N”);
1,000.00
X或x
十六进制形式
1000.ToString(“X”);
1000.ToString(“x”);
0x1000.ToString(“x”);
3E8
3e8
1000
P或 p
百分数
1.ToString(“P”);
100.00%
R或r
往返.它可以保证字符串表示能转换回数字形式.它适用于Double类型而不适用于Integer类型
Double d=100.0;
d.Tostring(“R”);
1000
d
短日期模式
5/20/2002
D
长日期模式
Monday,May 20,2002
T
长日间模式
3:51:04 PM
t
短时间模式
3:51 PM
注意,格式字符不区分大小写,除了“X”和“x”,这种情况下格式字符的大小写会决定十六进制数字使用的大小写。上表中显示的格式化信息公适用于en-US文化。如果使用另一种文化,其输出就会有所不同。
二、 标记(String.IndexOfAny方法),即分离字符串
报告指定 Unicode 字符数组中的任意字符在此实例中第一个匹配项的索引。
重载列表
名称
说明
String.IndexOfAny (Char[])
报告指定 Unicode 字符数组中的任意字符在此实例中第一个匹配项的索引。
String.IndexOfAny (Char[], Int32)
报告指定 Unicode 字符数组中的任意字符在此实例中第一个匹配项的索引。该搜索从指定字符位置开始。
String.IndexOfAny (Char[], Int32, Int32)
报告指定 Unicode 字符数组中的任意字符在此实例中第一个匹配项的索引。搜索从指定字符位置开始,并检查指定数量的字符位置。
例如:将一句话分离出来:
The IndexPopulationStatus enumeration contains values that are used to specify the type of population in progress即变成一个单词一个单词的显示出来。
string str = "The IndexPopulationStatus enumeration contains values that are used to specify the type of population in progress";
char[] scpators=...{' ',',','.','?','!','"',':',';'};
int starPos = 0;
int endPos = 0;
do
...{
endPos = str.IndexOfAny(scpators, starPos);
if (endPos == -1) endPos = str.Length;
Console.WriteLine(str.Substring(starPos, endPos - starPos));
starPos = endPos + 1;
} while (endPos < str.Length);
char[] scpators=...{' ',',','.','?','!','"',':',';'};
int starPos = 0;
int endPos = 0;
do
...{
endPos = str.IndexOfAny(scpators, starPos);
if (endPos == -1) endPos = str.Length;
Console.WriteLine(str.Substring(starPos, endPos - starPos));
starPos = endPos + 1;
} while (endPos < str.Length);
最后结果为:
1、 颠倒字符串次序。
有时需要颠倒一个字符串的次序。
//任何继承于Array的类都利用Reverse()方法为数组中的元素重新排序。要颠倒这个字符串,应从字符串中创建一个字符数组调用Reverse()方法。结果返回的数组是颠倒字符次序后的字符串。
string str = "What are used to specify the type of population in progress";
char[] scpators = str.ToCharArray();
Array.Reverse(scpators);
Console.WriteLine(str);
Console.WriteLine(scpators);
Console.ReadKey();
string str = "What are used to specify the type of population in progress";
char[] scpators = str.ToCharArray();
Array.Reverse(scpators);
Console.WriteLine(str);
Console.WriteLine(scpators);
Console.ReadKey();
2、 排序
字符串有两种方式排序:
一是不区分文化的方式,只考试被排序字符的实际码点值,
String.CompareOrdinal 比较两个字符串而不考虑本地区域性。返回整数值。(0,1,-1)
即String.CompareOrdinal (String, String) 通过计算每个字符串中相应 Char 对象的数值来比较两个指定的 String 对象。
例:
正则表达式
正则表达式(regular expression,简写为regexes)是用来操作和检验字符串数据的一种强大的工具.正则表达式是一串特殊的字符,它转换为某种算法,根据这个算法来匹配文本.对许多开发人员来说,正则表达式是新引入的概念,但在Unix系统甚至是Web脚本语言(如JavaScript)中已经得到了广泛的应用.
NET实现正则表达式的关键在于System.Text.RegularExpressions命名空间,它包含了8个类.
l Regex-包含了正则表达式,以及使用正则表达式的各种方法
l MatchCollection-包含了一正则表达式找到的所有匹配项
l Match-包含了一次匹配中所有匹配的文本
l GroupCollection-包含了一次匹配中的所有分组.
l Group-包含了一个分组集合中一个组的细节
l CaptureCollection=包含一个组的所有Capture对象
l Capture-返回组内一次捕获所匹配的字符串
l RegexCompilationInfo-提供了把Regex编译为一个独立程序集所需的细节
1、 Regex类
Regex类不仅可以用来创建正则表达式,而且提供了许多有用的方法,以使用正则表达式来操作字符串数据。例如,搜索字符模式或进行复杂的查找和替换。如果要把一个正则表达式重复用于不同的字符串,就可以创建一个Regex对象。
初始化 Regex 类的新实例。
RegexOptions枚举
RegexOptions常用选项
成员名称
说明
Compiled
指定将正则表达式编译为程序集。这会产生更快的执行速度,但会增加启动时间。
ECMAScript
为表达式启用符合 ECMAScript 的行为。该值只能与 IgnoreCase、Multiline 和 Compiled 值一起使用。该值与其他任何值一起使用均将导致异常。
IgnoreCase
指定不区分大小写的匹配。
Multiline
多行模式。更改 ^ 和 $ 的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。
None
指定不设置选项。
RightToLeft
指定搜索从右向左而不是从左向右进行。
Singleline
指定单行模式。更改点 (.) 的含义,使它与每一个字符匹配(而不是与除 /n 之外的每个字符匹配)。
Regex的构造函数
名称 说明
Regex () 初始化 Regex 类的新实例。
Regex (String) 为指定的正则表达式初始化并编译 Regex 类的一个新实例。
Regex (SerializationInfo, StreamingContext) 使用序列化数据初始化 Regex 类的新实例。
Regex (String, RegexOptions) 用修改模式的选项为指定的正则表达式初始化并编译 Regex 类的一个新实例。
例如:匹配ABC
Regex rex =new Regex("abc");
//如果不用区分大小写,则写成Regex rex = new Regex("abc",RegexOptions.IgnoreCase )
string str = "compute asdf aabc";
Console.WriteLine(rex.IsMatch (str));//最后结果返回为True
IsMatch()方法可以测试字符串,看它是否匹配正则表达式的模式。如果发现了一次匹配,那么该方法返回True,否则返回False。IsMatch()有一个静态的重载方法,使用它可以无需显示地创建一个Regex对象。
名称
说明
Regex.IsMatch (String)
指示 Regex构造函数中指定的正则表达式在输入字符串中是否找到匹配项。
Regex.IsMatch (String, String)
指示正则表达式使用 pattern 参数中指定的正则表达式是否在输入字符串中找到匹配项。
Regex.IsMatch (String, String, RegexOptions)
指示正则表达式使用 pattern 参数中指定的正则表达式和 options 参数中提供的匹配选项是否在输入字符串中找到匹配项。
- C#字符串和正则表达式参考手册(笔记)
- C#字符串和正则表达式参考手册(笔记)
- C#字符串和正则表达式参考手册 小结
- C#字符串和正则表达式参考手册
- C#字符串和正则表达式参考手册
- C#字符串和正则表达式参考手册
- 阅读笔记:《C#字符串和正则表达式参考手册》 1-4章部分代码
- C#学习笔记 字符串和正则表达式
- C#字符串和正则表达式
- 1.12 C# 字符串和正则表达式
- JAVA学习笔记-字符串和正则表达式
- pp看书笔记---C#高级编程第九版 第九章 【字符串和正则表达式】
- C# 正则表达式 笔记
- c# 正则表达式笔记
- c# 正则表达式笔记
- c# 正则表达式笔记
- 正则表达式 参考手册
- 正则表达式参考手册
- 抽象方法(abstract class)的作用体现
- c++中new和delete的那些事1
- TCP协议理解
- STL中的常用的vector,map,set,Sort用法
- Frame-By-Frame Animations的使用方法
- C#字符串和正则表达式参考手册(笔记)
- servlet非线程安全,解决办法
- [python学习]列表复制
- 使用wireshark分析网络报文
- C#创建动态数组
- 某些网站
- 使用neoclipse
- Exchange Server2010的部署规划(一)
- neo4j的入门示例