首页 > 编程 > Regex > 正文

在VS2008中使用正则表达式进行查找和替换

2020-03-22 16:49:32
字体:
来源:转载
供稿:网友
html' target='_blank'>正则表达式是查找和替换文本模式的一种简洁而灵活的表示法。在“查找和替换”窗口中执行“快速查找”、“在文件中查找”、“快速替换”或“在文件中替换”操作时,可以在该窗口的“查找内容”和“替换为”字段中使用一组专用的正则表达式。若要启用正则表达式,请在“查找和替换”窗口中展开“查找选项”,选择“使用”,然后选择“正则表达式”。“查找内容”和“替换为”字段旁的三角形“表达式生成器”按钮将变为可用。单击此按钮可以列表显示最常用的正则表达式。当单击列表上的某个正则表达式时,它将插入“查找内容”或“替换为”字段中的光标所在位置。单击“表达式生成器”底部的“完整字符列表”时,会显示帮助主题。主题内容涵盖VisualStudio“查找和替换”功能可以识别的所有正则表达式。您可以复制主题中的正则表达式,然后将其粘贴到“查找内容”或“替换为”字段中。“查找内容”和“替换为”中可使用的正则表达式与.NETFramework编程中的有效正则表达式有许多语法上的区别。例如,在“查找和替换”窗口中,大括号{}用于标记的表达式的替换:将每次出现的doesn't改为doesnot,你应该使用查找表达式{does}n't和替换表达式/1not。用于“查找和替换”的正则表达式“表达式生成器”中经常使用的正则表达式如下所示。
a.o匹配“around”中的“aro”和“about”中的“abo”,但不匹配“across”中的“acro”。
a*b匹配“bat”中的“b”和“about”中的“ab”。 e.*e匹配单词“enterprise”。
ac+匹配包含字母“a”和至少一个字母“c”的单词,如“race”和“ace”。 a.+s匹配单词“access”。
end$仅当单词“end”显示为可能位于编辑器中行尾的最后一组字符时匹配该单词。
End/nBegin仅当“End”是一行中的最后一个字符串和“Begin”是下一行中的第一个字符串时匹配单词“End”和“Begin”。 在“替换”表达式中,Begin/nEnd使用“Begin”替换第一行中的单词“End”,插入换行符,然后使用单词“End”替换单词“Begin”。
匹配[]内的任何一个字符。若要指定字符的范围,请列出由短划线(-)分隔的起始字符和结束字符,如[a-z]。
be[n-t]匹配“between”中的“bet”、“beneath”中的“ben”和“beside”中的“bes”,但不匹配“below”中的“bel”。
be[^n-t]匹配“before”中的“bef”、“behind”中的“beh”和“below”中的“bel”,但是不匹配“beneath”中的“ben”。
匹配OR符号(|)之前或之后的表达式。最常用在分组中。
按原义匹配反斜杠(/)之后的字符。这使您可以查找正则表达式表示法中使用的字符,如{和^。
{does}n't标识在替换字符串中的更换之前的文本,/1not更改出现的每个项。
表达式(("[^"]*")|('[^']*'))的简写形式,它匹配用双引号或单引号括起来的所有字符,还匹配引号本身。
“查找”和“替换”操作中所有有效正则表达式的列表,比“表达式生成器”中可显示的列表长。尽管“表达式生成器”中没有显示下面的正则表达式,但您可以在“查找内容”或“替换为”字段中使用它们。
e.@匹配“enterprise”中的“ente”和“erprise”,但不匹配完整的单词“enterprise”。
ac#匹配包含字母“a”和至少一个字母“c”的单词,如“ace”。 a.#s匹配单词“access”中的“acces”。
允许将一组表达式组合在一起。如果要在一次操作中搜索两个不同的表达式,可以使用分组表达式来组合这两个表达式。
如果要搜索(-[a-z][1-3]或-[0-9][a-z],应按如下方式组合这两个表达式:([a-z][1-3])|(-[0-9][a-z])。
在“查找”或“替换”表达式中,指示第n个带标记的表达式所匹配的文本,其中n是从1至9的数字。 在“替换”表达式中,/0插入整个匹配的文本。
如果搜索a{[0-9]},并替换为/1,则“a”后跟数字的所有搜索项由跟随的数字替换。例如,“a1”由“1”替换,类似地,“a2”由“2”替换。
在“替换”表达式中,将字段中第n个带标记的表达式右对齐至少w字符宽。
如果搜索a{[0-9]},并替换为/(10,1),则“an”的搜索项由整数替换,并通过10个空格右对齐。
在“替换”表达式中,将字段中第n个带标记的表达式左对齐至少w字符宽。
如果搜索a{[0-9]},并替换为/(-10,1),则“an”由整数替换,并通过10个空格左对齐。
real~(ity)匹配“realty”和“really”中的“real”,但不匹配“reality”中的“real”。
匹配Unicode值给定的字符,其中####是十六进制数。可以用ISO10646代码点或两个提供代理项对的值的Unicode代码点指定基本多语种平面(即一个代理项)外的字符。
下表列出了用于指定Unicode字符属性数据库中列出的通用类别的两个字母的缩写词。您可以在正则表达式字符集中使用这些缩写词。例如,表达式[:Nd:Nl:No]匹配任何类型的数字。
匹配类似TAB和NEWLINE这样的Unicode控制字符。
匹配任何一个字符。 例如,:Alhe匹配“The”、“then”、“reached”等单词。
匹配任何一个数字。例如,7#匹配包括7及其后接另一数字的数字,如71,但不包括17。
按原义匹配反斜杠(/)之后的字符。这使您可以查找在通配符表示法中使用的字符,如*和#。
匹配零个或多个字符。例如,new*匹配包括“new”的任何文本,如newfile.txt。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表