首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在perl中使用正则表达式匹配包含元字符的变量

在perl中使用正则表达式匹配包含元字符的变量
EN

Stack Overflow用户
提问于 2012-04-16 21:31:59
回答 1查看 495关注 0票数 1
代码语言:javascript
运行
复制
$match="";

for($i=0;$i<=$#wor;$i++)
{
$match=$match.$letter[$wor[$i]];
}

print $match;

open ABC,"<words.txt";

while(<ABC>)
{

if($_ =~ /^$match$/ )
{
print "$_";
print "\n";
}
}

在下面的代码中,我无法将文件的行$_与变量$match (它包含要匹配的实际元字符)进行匹配?因此不会产生任何输出,需要进行哪些更改?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-16 21:35:06

您需要从正则表达式中删除与字符串的开头和结尾匹配的^$锚点。

使用它们,regexp将只匹配只包含元字符的行。

您可能还希望将$match包装在[ .. ]字符中,以表明它是一个字符范围,而不是一个单词。

例如,如果要排除任何包含_%的行,则$match需要包含[_$]

编辑如果根据注释,您只想在任意一端找到元字符时才进行匹配,请使用:

代码语言:javascript
运行
复制
if (/^${match}/ || /${match}$/) {
    ...
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10175135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档