正则表达式与Perl编程实践

1、编写一个正则表达式,用于匹配包含 ‘a’、’b’ 或 ‘x’(区分大小写)的字符串。

使用字符类来匹配 ‘a’、’b’ 或 ‘x’ 的正则表达式为:[abx]。

2、编写一个正则表达式,用于匹配以 ‘a’、’b’ 或 ‘x’ 开头的字符串。

下面是给定的【文本内容】:

可先写出匹配 “a”、“b” 或 “x” 的不区分大小写的字符类正则表达式,如 /[aAxXbB]/i ,再修改为匹配字符串开头的 “a”、“b” 或 “x”,即 /^[aAxXbB]/

3、编写一个正则表达式来匹配不以 ‘a’、’b’ 或 ‘x’ 开头的字符串。

m/\A[^abx]/

4、编写一个正则表达式,用于匹配开头部分(不包括换行符)与结尾部分相同的字符串。

m/\A(.+).*\1\z/ 或者 m/\A(.+).*\g1\z/ 或者 m/\A(.+).*\g{-1}\z/

5、编写一个正则表达式来匹配有效的Perl变量名并报告其变量类型。

可以使用以下正则表达式和代码实现:

m/\A([\$\@%])[a-zA-Z_]\w*\z/

示例代码如下:

#!/usr/bin/perl
use strict;
use warnings;

my %sigils = qw( $ scalar @ array % hash );

print "Enter a string>> ";
chomp( $_ = <STDIN> );

if( m/\A([\$\@%])[a-zA-Z_]\w*\z/ ) {
    print "The variable type is $sigils{$1}\n";
}
else {
    print "The string is not a valid Perl variable name\n";
}

6、使用替代分隔符编写一个正则表达式来匹配 ‘/usr/bin/perl’。

可以使用以下几种方式:

  • m|/usr/bin/perl|
  • m(/usr/bin/perl)
  • m{/usr/bin/perl}
  • m,/usr/bin/perl,

7、使用替代分隔符编写一个正则表达式来匹配简单的 C++ 注释。

这里答案有误,正确答案应该是使用替代分隔符(如 # )编写匹配 C++ 单行注释的正则表达式为 #//.*# 。所以原答案输出 DELETE

8、请写出一个不区分大小写,能匹配字符 a、b、x 的正则表达式

m/[abxABX]/ 或 m/a|b|x|A|B|X/

9、编写正则表达式来匹配 /usr/bin/perl ,要求使用替代分隔符

可以使用以下正则表达式,如 m#/usr/bin/perl# ,这里使用了 # 作为替代分隔符。

10、编写正则表达式来匹配 C++ 注释

在 C++ 里,注释有单行注释和多行注释。
匹配单行注释的正则表达式为: //.*
匹配多行注释的正则表达式为: /*.*?*/

11、匹配包含大小写的 “a”、“b” 或 “x” 的字符串的正则表达式为 m/[abxABX]/ ,请使用 /i 修饰符重写该正则表达式

m/[abx]/i

12、匹配 Perl 变量名的正则表达式为 m/^([$@%])[a-zA-Z_]\w*$/ ,请将其改写为更短的正则表达式;若要将匹配限制在 “a” 到 “m” 之间的字符,该如何修改;使用更高级的 Unicode 属性时,正则表达式是否需要改变

更短的正则表达式可写为 m/^([$@%])[a-zA-Z_]\w*$/ ;若将匹配限制在 “a” 到 “m” 之间的字符,修改为 m/^([$@%])[a - m_]\w*$/i ;使用更高级的 Unicode 属性时,正则表达式无需改变,为 m/\A \p{ID_Start}\p{ID_Continue}* \z/x

13、编写一个程序,提示用户输入三行字符串,再提示用户输入一个正则表达式,然后检查每一行是否与该正则表达式匹配,并输出结果

以下是一个使用 Python 实现的示例代码:

import re
# 提示用户输入三行字符串
lines = []
for i in range(3):
    line = input(f'请输入第 {i + 1} 行字符串: ')
    lines.append(line)
# 提示用户输入正则表达式
pattern = inpu
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值