假设我们有这样一个文件,文件中的每一行包含一个公司名,我们想把这些公司名用双引号括起来,怎么办?用正则表达式解决这个问题很easy,我们分两步来进行:
1. 在 EmEditor 中Ctrl+H 调出 Replace 对话框,在 Find 中输入
^
,在 Replace With 中输入
"
,然后轻轻的点击 Replace Al l,我们就每一行的开头添加了双引号。
2. 在 EmEditor 中Ctrl+H 调出 Replace 对话框,在 Find 中输入
$
,在 Replace With 中输入
"
,然后优雅的点击 Replace Al l,我们就每一行的结尾添加了双引号。
啊?为什么在我的机器上不好使呢?呵呵,再次提醒,别忘选中 Replace 对话框中的
Use Regular Expressions
哦。
看到这里,如果你有这样的疑问,我们能不能一次搞定呢? 如果你有这样的想法,你终将成大器。事实上确实可以而且也非常简单,试一试下面这个表达式吧:
竖线代表
或
的意思,所以上面的表达式的意思是把行头或行尾替换为双引号。
值得注意的是^和$匹配的是一个位置,也就是行首和行尾,并不匹配具体的字符。正则表达式的元字符一般有两类,一类匹配具体字符,一类匹配位置。别着急,你很快就会学会其他更强大的匹配位置的元字符。
恭喜你,你又学会了三个元字符
元字符
|
名称
|
匹配对象
|
.
|
点号(dot)
|
单个任意字符
|
^
|
脱字符(caret)
|
行的起始位置
|
$
|
美元符(dollar)
|
行的结束位置
|
|
|
竖线(bar)
|
匹配分割两边的任意一个表达式
|
最后大家猜一猜下面的正则表达式是什么意思呢? let me know your idea.
---
更多参见:
正则表达式精萃
--
声 明:转载请注明出处
-- Last Updated on 2012-04-21
-- Written by ShangBo on 2012-04-19
-- End
-- Start假设我们有这样一个文件,文件中的每一行包含一个公司名,我们想把这些公司名用双引号括起来,怎么办?用正则表达式解决这个问题很easy,我们分两步来进行:1. 在 EmEditor 中Ctrl+H 调出 Replace 对话框,在 Find 中输入^,在 Replace With 中输入",然后轻轻的点击 Replace Al l,我们就每一行的开头添加了双引号。2.
i (PCRE_CASELESS) 如果设定此修正符,模式中的字符将同时
匹配
大小写字母。 m(PCRE_MULTILINE) 默认情况下,PCRE 将目标字符串作为单一的一“
行
”字符所组成的(甚至其中包含有换
行
符也是如此)。“
行
起始
”元字符(^)仅仅
匹配
字符串的
起始
,“
行
结束
”元字符($)仅仅
匹配
字符串的
结束
,或者最后一个字符是换
行
符时其前面(除非设定了 D 修正符)。这和 Perl 是一样的。 当设定了此修正符,“
行
起始
”和“
行
结束
”除了
匹配
整个字符串开头和
结束
外,还分别
匹配
其中的换
行
符的之后和之前。这和 Perl 的 /m 修正符是等效的。如果目标字符串中没有“\n”字符或者模式中没有 ^
最近在编辑文本的时候用到了
EmEditor
的一个好用的正则替换功能。即我想用搜索到内容的一部分来生成另一段文本。例如客户提供给我一大堆MYSQL的建立主键的脚本,我想改成MSSQL的建立主键的脚本,这里就用到了这个功能。
--替换前:
ALTER TABLE XXXX
ADD PRIMARY KEY PK_XXXX
ID ASC
--替换后
ALTER ...
匹配
中文字符的
正则表达式
: [\u4e00-\u9fa5]
评注:
匹配
中文还真是个头疼的事,有了这个表达式就好办了
匹配
双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配
空白
行
的
正则表达式
:\...
EmEditor
是一款功能强大又轻便的文字编辑器,支持各种主流文本格式的直接编辑,如:txt、bat、js、html,你也可以用它来编辑各种程序的文件格式,如c++、vbs、python,其特点是支持无限制的撤销与恢复操作,自定义的文本高亮显示以及插件。
本文将介绍txt文本的快速编辑技巧。笔者使用的是10.0.6版的
EmEditor
,因为这个版本体积小巧,绿色稳定。(见图1)
如果你是从网上下载的
EmEditor
安装包,那么请将
EmEditor
安装到非系统盘,如果是压缩包,那么拷贝到非系统盘解压即可直
我可以帮助你解决C语言串的模式
匹配
问题。
你可以使用KMP算法来实现串的模式
匹配
。该算法是一种快速的字符串
匹配
算法,时间复杂度为O(n+m),其中n为主串长度,m为模式串长度。
判断字符串
匹配
的过程中,需要从主串的
起始
位置和模式串的
起始
位置开始比较,如果比较成功,则继续比较下一个字符。如果比较不成功,则需要将模式串向右移动一位,继续比较。该过程需要不断地比较,直到模式串
匹配
成功或主串被
匹配
完。
以下是实现串的模式
匹配
的基本步骤:
1. 读取主串和模式串,以及
起始
位置。
2. 根据模式串生成部分
匹配
表。
3. 从主串的
起始
位置开始遍历,依次比较主串和模式串的字符。
4. 如果
匹配
成功,则继续比较下一个字符。
5. 如果
匹配
不成功,则将模式串向右移动一位,继续比较。
6. 如果到达主串末尾仍未
匹配
成功,则说明
匹配
失败。
需要注意的是,部分
匹配
表的生成过程比较复杂,需要仔细理解和实现。在实现过程中,还需要注意指针移动的位置和判断字符串是否
结束
的条件等细节问题。
希望以上信息能够帮助你解决问题。如果有其他问题,可以继续向我提问。