`
darkjune
  • 浏览: 303127 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Perl的replace函数

阅读更多

在使用过程中,遇到一个问题,用Perl的正则表达式无法解决,其正则匹配虽然异常强大,不过好像没有发现满足我需要的replace函数,在实际情况中,我已经把需要替换的15位数据生成好了,只要在特定的文档中的特定的位置,如在需要行中的第15-20的位置把文本替换掉,正则无法做这个,只能手写了一个函数,通过Perl最基本的substr实现此功能:

sub replace(){


my ($line,$exp,$beg,$end)=@_;

$len=rindex $line."\$", "\$"; #计算Line长度
my $line_left=substr($line,0,$beg);

my $line_right=substr($line,$end,$len);

my $newline=$line_left.$exp.$line_right;

}

整个非常简单,line就是原始字符串,exp就是要替换进去的字符串,beg和end是要将原始字符串替换的位置。

分享到:
评论

相关推荐

    POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)

    POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace) ,需要的朋友可以参考下。

    PHP中基于perl的正则表达式处理函数

    在前面我们也说过,基于perl的正则表达式要快于POXIS正则表达式处理函数,所以我们只介绍以preg开头的基于perl的正则表达式。注意:在能偶使用字符串函数处理的时候,就不要使用正则表达式来处理字符串,因为字符串...

    PHP 字符串正则替换函数preg_replace使用说明

    1. preg_replace() $msg = preg_replace(“/<style>.+<\/style>/is”, “”, $msg); —–删除<style></style>和中间的部分 $msg = preg_...这和 Perl 的 /s 修正符是等效的。排除字符类例如

    公司面试题之-腾讯PHP工程师笔试题.doc

    ereg_replace 函数和 preg_replace 函数都是用于字符串替换的,前者使用 POSIX 风格的正则表达式,后者使用 Perl 风格的正则表达式。 二、PHP.ini 配置 PHP.ini 文件是 PHP 的配置文件,用于设置 PHP 的各种选项。...

    PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)

    在前面我们也说过,基于perl的正则表达式要快于POXIS正则表达式处理函数,所以我们只介绍以preg开头的基于perl的正则表达式。注意:在能偶使用字符串函数处理的时候,就不要使用正则表达式来处理字符串,因为字符串...

    php小经验:解析preg_match与preg_match_all 函数

    二者差别不大,而且推荐使用Perl 兼容正则表达式函数,因此下文都是以 Perl 兼容正则表达式函数为例子说明。定界符Perl 兼容模式的正则表达式函数,其正则表达式需要写在定界符中。任何不是字母、数字或反斜线()的...

    php面试题_腾讯.doc

    POSIX 风格使用 ereg 系列函数,如 ereg、ereg_replace 等,而 Perl 风格使用 preg_match、preg_replace 等函数。两种风格的主要区别在于语法和功能,如 POSIX 风格不支持捕获组,而 Perl 风格支持。 二、安全模式 ...

    PHP 正则表达式函数库(两套)

    在PHP中有两套正则表达式函数库,两者功能相似,只是执行效率略有差异: 一套是由PCRE(Perl Compatible Regular Expression)库提供的。使用“preg_”为前缀命名的函数; 一套由POSIX(Portable Operating System ...

    PHP 正则表达式常用函数使用小结

    PCRE库使用和Perl相同的语法规则实现了正则表达式的模式匹配,其使用以“preg_”为前缀命名的函数。另一套是由POSIX(Portable Operation System interface)扩展库提供的。POSIX扩展的正则表达式由POSIX 1003.2定义...

    PHP 高手之路(三)

    使用str-replace而不是ereg-replace 习惯使用Perl进行编程的程序员更加愿意使用ereg_replace完成字符串替换工作,因为在PHP中ereg_replace的用法和Perl中模式匹配的用法相近。但是,下面的这段代码证明,使用str_...

    PHP preg_replace() 正则替换所有符合条件的字符串

    一般这种情况,我们用正则按我们的规则去匹配preg_match、替换preg_replace。 但一般的应用中,无非是些数据库CRUD,正则摆弄的机会很少。 根据前面说的,两种场景:统计分析,用匹配;处理用替换。...

    PHP3程序设计

    9.3.7 preg_replace函数 141 9.3.8 preg_split函数 143 9.3.9 模式举例 143 9.3.10 匹配举例 144 9.3.11 替换举例 148 9.3.12 分割举例 150 9.4 MySQL …151 9.4.1 LIKE 151 9.4.2 RLIKE 152 9.5 总结 152 第10章 ...

    Java-PHP-C#

    在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如:Perl或PHP脚本语言。此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,...

    MySQL中文参考手册

    + 4.10.2 在 Win32上安装 ActiveState Perl + 4.10.3 在 Win32 上安装 MySQL Perl 分发 + 4.10.4 使用 Perl DBI/DBD接口遇到的问题 o 4.11 系统特定的问题 + 4.11.1 Solaris注意事项 + 4.11.2 Solaris 2.7 ...

    MySQL 5.1中文手冊

    2.13.2. 在Windows下安装ActiveState Perl 2.13.3. 使用Perl DBI/DBD接口的问题 3. 教程 3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中...

    MySQL 5.1参考手册 (中文版)

    2.13.2. 在Windows下安装ActiveState Perl 2.13.3. 使用Perl DBI/DBD接口的问题 3. 教程 3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中...

    mysql官方中文参考手册

    2.13.2. 在Windows下安装ActiveState Perl 2.13.3. 使用Perl DBI/DBD接口的问题 3. 教程 3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中...

    MYSQL中文手册

    12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE...

Global site tag (gtag.js) - Google Analytics