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);
 
最后结果为:
 
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();
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 参数中提供的匹配选项是否在输入字符串中找到匹配项。
 
 
 
原创粉丝点击