`
weihe6666
  • 浏览: 436163 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

perl-正则表达式处理文本

    博客分类:
  • Perl
阅读更多
perl-正则表达式处理文本


1.用s///替换
  此操作可将指定变量合乎模式的部分替换为另一个字符串。
$_ = "He's out bowling with Barney tonight.";
if ( s/Barney/Fred/){
print "$_";
}

输出:
He's out bowling with Fred tonight.

当然模式串和替换串还可以更复杂:
$_ = "He's out bowling with Barney tonight.";
s/with (\w+)/against $1's team/){
print "$_";
}

输出:
He's out bowling against Barney's team tonight.

$_ = "green scaly dinosaur";
if (s/(\w+) (\w+)/$1, $2/){
	print "The string change into : $_\n";
}
if ( s/^/huge, /){
	print "The string change into : $_\n";
}
if (s/, .*een,/ /){
	print "The string change into : $_\n";
}

输出:
The string change into : green, scaly dinosaur
The string change into : huge, green, scaly dinosaur
The string change into : huge  scaly dinosaur

2.用/g进行全局替换

在前面的例子中可以看到,即使有其他可以替换的部分,s///也只会进行一次替换。当然,这只是默认的行为而已。/g可以让s///进行所有的可能的、不重复的替换。
$_ = "home, sweet home!";
if ( s/home/cave/g){
	print "$_";
}

输出:cave, sweet cave!

常用的全局替换是缩减空白,也就是将连续的空白转换为单一空白:
$_= "Input   data   and    output    data";
if (s/\s+/ /g){
print "$_";
}
输出:
Input data and output data

如何删除开头和结尾的空白,其实很简单:
s/^\s+//g ;#删除开头的空白
s/\s+$//g ;#删除结尾的空白


3.大小写转换

在替换运算中,常常需要把单词全部改写长大写字母(或小写字母)。用PERL很容易做到,只要使用某些反斜线转移字符就行了。

\U 移字符将其后的字符转换为大写
\L 移字符将其后的字符转换为小写
使用小写字母\u和 \l 他们只会影响之后的第一个字符。

$_="I saw Barney with Fred.";
if (s/(fred|barney)/\U$1/gi){
	print "$_\n";
}
if (s/(fred|barney)/\L$1/gi){
	print "$_\n";
}
if (s/(fred|barney)/\u$1/gi){
	print "$_\n";
}
if (s/(fred|barney)/\l$1/gi){
	print "$_\n";
}

输出:
I saw BARNEY with FRED.
I saw barney with fred.
I saw Barney with Fred.
I saw barney with fred.

分享到:
评论

相关推荐

    grep、sed、awk、perl等对正则表达式的支持的差别

    在IT领域,文本处理是日常工作中不可或缺的一部分,而grep、sed、awk和perl这四个工具在处理文本时都广泛地使用了正则表达式。它们各自有着不同的特性和适用场景,理解它们之间的差异有助于我们更高效地进行文本操作...

    regex-正则表达式教程.pdf

    正则表达式(Regex)是一种强大的文本处理工具,用于在字符串中匹配、查找、替换特定模式的文本。它通过使用一套特殊的语法来描述一系列字符或者字符模式。这篇"regex-正则表达式教程.pdf"深入浅出地介绍了正则表达式...

    java/Android 正则表达式详解

    许多语言,包括 Perl、PHP、Python、JavaScript 和 JScript,都支持用正则表达式处理文本。 句点符号 --------- 句点符号“.”是正则表达式中最基本的元字符之一,它匹配所有字符,包括空格、Tab 字符甚至换行符。...

    图灵程序设计丛书-正则表达式必知必会.pdf

    《正则表达式必知必会》是一本深入探讨正则表达式的专业书籍,它旨在帮助读者掌握这一强大的文本处理工具。正则表达式(Regular Expression)是编程领域中的一个核心概念,尤其在数据处理、文本搜索、字符串匹配等...

    re --- 正则表达式操作 — Python 3.10.0a4 文档.pdf

    正则表达式是 Python 中的一种强大的文本匹配工具,提供了与 Perl 语言类似的匹配操作。该模块提供了 Unicode 字符串和 8 位字节串两种类型的匹配操作,但它们不能混用。在使用正则表达式时,需要注意 Unicode 字符...

    regex---正则表达式教程.docx

    正则表达式(Regex)是一种强大的文本处理工具,用于匹配、查找、替换或者解析符合特定模式的字符串。它由一系列的字符和特殊符号组成,能够高效地处理复杂的文本匹配任务。在本文中,我们将深入探讨正则表达式的基础...

    DEELX 是一个在 C++ 环境下的与 Perl 兼容的正则表达式引擎

    DEELX 将这种功能移植到了C++环境中,使得开发者无需离开他们熟悉的编程语言就能利用Perl正则表达式的强大之处。这包括但不限于以下关键特性: 1. **元字符**:DEELX 支持各种元字符,如 `.` (匹配任何非换行符的...

    java正则表达式.zip

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...

    C语言正则表达式库

    在C语言中,使用正则表达式库可以实现复杂的文本搜索、替换和分析操作,而无需编写复杂的字符串处理代码。PCRE库提供了丰富的API接口,包括编译正则表达式、执行匹配、获取匹配结果等。 PCRE库的特性包括: 1. **...

    Perl正则表达式,常用函数和变量

    一、Perl正则表达式基础 Perl的正则表达式由一系列字符和元字符组成,它们共同构成一个模式,用于在字符串中查找匹配的模式。例如,`\d`代表数字,`.`代表任何字符,`*`表示前一个字符可以出现零次或多次。`^`表示...

    Perl 正则表达式速查手册

    Perl正则表达式是用于文本处理的强大工具,被广泛应用于各种脚本编程任务中,包括数据验证、字符串替换、模式匹配等。本文档旨在为用户提供一个快速查阅Perl正则表达式的指南,包含了基本的特殊字符、元字符、锚点、...

    perl正则表达式的整理

    Perl正则表达式是Perl语言中的一个重要组成部分,用于文本匹配、搜索和替换操作。它们是强大的工具,能够处理复杂的字符串模式。...深入学习和熟练掌握Perl正则表达式,可以极大地提高处理字符串和文本数据的能力。

    正则表达式30分钟入门教程-附常用表达式.zip

    正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的...

    正则表达式.rar正则表达式.rar正则表达式.rar正则表达式.rar正则表达式.rar

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索、替换操作。在编程语言中,正则表达式(Regular Expression)被广泛应用于数据验证、文本提取、数据清洗等多个领域。它们通过使用特定的语法...

    Java正则表达式.ppt

    Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...

    java 正则表达式 perl5规范 jakarta-oro.jar

    通过学习和熟练掌握Java正则表达式及其Perl 5规范,开发者可以在处理字符串和文本数据时大大提高效率和代码的灵活性。Jakarta ORO库的使用可以进一步优化这些操作,尤其在处理复杂或性能敏感的项目中。

Global site tag (gtag.js) - Google Analytics