ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

正则表达式——常见应用软件和编程语言中的正则表达式

正则表达式——常见应用软件和编程语言中的正则表达式 常见应用软件和编程语言中的正则表达式1、grep2、JavaScript3、MySQL4、Perl5、PHP6、Sun Java1、grepgrep是一种用来对文件或标准输入文本进行文字搜索的Unix工具。根据你具体使用的命令选项grep支持基本、扩展和Perl正则表达式。-E使用扩展正则表达式。-G使用基本正则表达式。-P使用Perl正则表达式。提示 你使用的命令选项不同grep工具的功能和用途也就不同。大多数用户喜欢使用Perl正则表达式见稍后的描述​因为这些是最标准的。请注意以下事项在默认的情况下grep将把包含着匹配的各个文本行全部显示出来如果你只想查看匹配结果请使用-o选项。使用-v选项将对整个匹配操作进行求非——只显示不匹配的文本行。使用-c选项将只显示匹配的总数而不是次匹配的细节。grep工具只能用来进行搜索操作不能用来进行替换操作。换句话说grep工具不支持替换功能。2、JavaScriptJavaScript 1.x版本在String和RegEx对象的以下几个方法里实现了正则表达式处理。exec一个用来搜索一个匹配的RegEx方法。match一个用来匹配一个字符串的String方法。replace一个用来完成替换操作的String方法。search一个用来测试在某给定字符串里是否存在着一个匹配的String方法。split一个用来把一个字符串拆分为多个子串的String方法。test一个用来测试在某给定字符串里是否存在着一个匹配的RegEx方法。注意 JavaScript 2里的正则表达式处理Mozilla和另外几种比较新的浏览器可以支持与JavaScript 1.x向后兼容并提供了更多的功能。JavaScript对正则表达式的支持源自Perl语言但需要注意以下几个问题JavaScript使用命令行选项来管理全局的区分大小写搜索g选项激活全局搜索功能i选项让匹配操作不区分字母的大小写这两个选项可以组合为gi。其他命令行选项版本4及以后的浏览器支持包括m支持多行字符串s支持单行字符串x忽略正则表达式模式里的空白字符。在使用回溯引用的时候$’将返回被匹配字符串前面的所有东西$将返回被匹配字符串后面的所有东西$将返回最后一个被匹配的子表达式$将返回被匹配到的所有东西。JavaScript提供了一个名为RegExp的全局对象在执行完一个正则表达式之后你们可以通过这个对象获得与这次执行有关的信息。JavaScript不支持POSIX字符类。JavaScript不支持\A和\Z。3、MySQLMySQL是一个流行的开放源代码数据库软件。MySQL率先提供了正则表达式支持作为一种数据库搜索手段这一点我们在其他数据库系统里还没有见过。MySQL对正则表达式的支持体现在允许在WHERE子句里使用如下格式的表达式REGEXPexpression注意 下面是一条使用了正则表达式的MySQL语句的完整语法SELECT*FROMtableWHEREREGEXPpatternMySQL正则表达式支持很有用功能也很强大但它还算不上是一个完备的正则表达式实现。只提供了搜索支持不支持使用正则表达式进行替换操作。在默认的情况下正则表达式搜索不区分字母的大小写。如果需要区分字母的大小写必须再增加一个BINARY关键字放在REGEXP和模式之间​。用[​[::]​]来匹配一个单词的开头用[​[::]​]来匹配一个单词的结束。不支持向前预测。不支持嵌入条件。不支持八进制字符搜索。不支持\a、\b、\e、\f和\v。不支持回溯引用。4、PerlPerl可以说是各种正则表达式实现的“祖宗”​其他各种实现几乎都与Perl相兼容。正则表达式支持是Perl的核心组件之一。如果需要在Perl脚本里使用正则表达式只要像下面这样给出一个操作和相应的模式即可。m/pattern/匹配给定的模式。s/ pattern/pattern/执行一个替换操作。qr/pattern/返回一个Regex对象供今后使用。split 把一个字符串拆分为子字符串。下面是一些与Perl正则表达式有关的注意事项。允许把限定符放在模式的后面。\i用来表明在搜索时不区分字母的大小写\g用来表明进行全局搜索把所有的匹配都找出来​。在使用“回溯引用”的时候$’将返回被匹配字符串前面的所有东西$将返回被匹配字符串后面的所有东西$将返回最后一个被匹配的子表达式$将返回整个被匹配字符串。5、PHPPHP通过它的PCRE组件提供了与Perl相兼容的正则表达式支持。注意 从PHP 4.2.0版本开始PCRE组件将自动安装。PHP早期版本的用户需要自行编译PHP pcre-regex软件包才能启用正则表达式支持。下面是PCRE组件提供的一些正则表达式函数。preg_grep ​进行一次搜索匹配结果将作为数组返回。preg_grep ​进行一次搜索匹配结果将作为数组返回。preg_match_all ​进行一次正则表达式搜索返回所有的匹配。preg_quote ​这个函数的输入参数是一个模式返回值是该模式的转义版本。preg_replace ​进行一次“搜索并替换”操作。preg_replace-callback ​进行一次“搜索并替换”操作但使用一个回调callback函数来完成实际替换动作。preg_split ​把一个字符串拆分为子字符串。请注意以下事项。在默认的情况下匹配操作不区分字母的大小写。如果不想区分字母的大小写必须使用i限定符。在默认的情况下匹配操作仅限于单行字符串。如果需要匹配多行字符串必须使用m限定符。preg_replace ​、preg_replace_callback和preg_split 函数都支持一个可选的参数该参数用来给出一个上限值——对字符串进行替换或拆分的最大次数。在默认的情况下匹配操作仅限于单行字符串。如果需要匹配多行字符串必须使用m限定符。preg_replace ​、preg_replace_callback和preg_split 函数都支持一个可选的参数该参数用来给出一个上限值——对字符串进行替换或拆分的最大次数。preg_grep 和preg_replace_callback 是从PHP 4才开始有的其他函数都是从PHP 3开始就被支持的。在PHP 4.0.4和更高版本里回溯引用可以用Perl语言的$语法例如$1来引用在较早的版本里必须用\来代替$。不支持\l、\u、\L、\U、\Q和\v。6、Sun JavaJava对正则表达式的支持是从1.4版本开始的此前的JREJava Runtime Environment, Java运行环境版本不支持正则表达式。警告 版本低于1.4的JRE现在仍被广泛地使用着。如果你打算部署一个使用了正则表达式的Java应用程序千万不要忘记检查JRE的版本。注意 Sun公司花了很长的时间才在Java里实现了正则表达式支持而不少软件团队在几年前就开发出了各种非官方的正则表达式实现。因为篇幅的限制本书没能对那些非官方的Java正则表达式实现进行介绍以下注意事项只适用于由Sun公司正式发布的Java正则表达式支持。Java语言中的正则表达式匹配功能主要是通过java.util.regex. Matcher类和以下这些方法实现的。find ​在一个字符串里寻找一个给定模式的匹配。lookingAt ​用一个给定的模式去尝试匹配一个字符串的开头。matches ​用一个给定的模式去尝试匹配一个完整的字符串。replaceAll ​进行替换操作对所有的匹配都进行替换。replaceFirst ​进行替换操作只对第一个匹配进行替换。matcher类还提供了几个能够让程序员对特定操作做出更细致调控的方法。此外java.util.regex.pattern类也提供了几个简单易用的包装器方法。compile ​把一个正则表达式编译成一个模式。flags ​返回某给定模式的匹配标志。matches ​在功能上等价于刚才介绍的matches 方法。pattern ​把一个模式还原为一个正则表达式。split ​把一个字符串拆分为子字符串。Sun公司发布的Java正则表达式支持与Perl语言基本兼容但要注意以下几点。要想使用正则表达式必须先用import java.util.regex.语句导入正则表达式组件这条语句将导入一个完整的软件包。如果你只需要用到其中的一部分功能请用相应的软件包名字替换掉这条语句里的​。不支持嵌入条件。不支持使用\E、\l、\L、\u和\U进行字母大小写转换。不支持使用\b匹配退格符。不支持\z。
返回列表