C#字符串和正则表达式参考手册(笔记)

 
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 字符数组中的任意字符在此实例中第一个匹配项的索引。
重载列表
名称
说明
报告指定 Unicode 字符数组中的任意字符在此实例中第一个匹配项的索引。
报告指定 Unicode 字符数组中的任意字符在此实例中第一个匹配项的索引。该搜索从指定字符位置开始。
报告指定 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 参数中提供的匹配选项是否在输入字符串中找到匹配项。
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值