首页
新闻
会员
周边
捐助
园子
·
关注
·
粉丝
·
会员
·
随便看看
·
消息
欢迎,请先
登录
或者
注册
。
登录
/
注册
闪存
博客
发言
小组
投递
新闻
提问
博问
添加
收藏
文库
问题反馈
问题列表
我关注的
我的博问
博问标签
提问
回答
被采纳
1
回答数
“+”修饰符本身不是占有模式,它只是一个普通的贪婪量词
+:表示“1次或多次”,默认是贪婪的,会尽可能多地匹配,允许回溯。 ++:才是占有模式,表示“1次或多次”,但不允许回溯(即匹配多少就是多少,不会给后面的表达式留机会)。
1
回答数
正则回溯,回溯只发生
在正则表达式中,无论是贪婪还是非贪婪(惰性)匹配,一旦整个目标字符串匹配成功,匹配过程就结束了,不会进行多余的回溯。回溯只发生在匹配失败的情况下,用于尝试其他可能的匹配路径。
1
回答数
贪婪没回溯例子
"abc11ddabc11" =~ =~/([a-z]*)([0-9]*)dd\1\2/ print "first group \1: $1\n"; print "second group \2: $
1
回答数
Nested quantifiers in regex; marked by <-- HERE in m/^a\w+* <-- HERE 3/ at a.pl line 3.
[root@node1 ~]# cat a.pl !/usr/bin/perl $str="abc1234abc123"; $str =~ /^a\w+3/; print "$&\n" 那为什么\w+
1
回答数
正则占有优先模式在防ReDoS攻击中的作用
占有优先模式在防ReDoS攻击中的作用,实际开发中很有用 ReDoS攻击的本质:灾难性回溯 核心问题: 某些正则表达式在匹配特定构造的恶意字符串时,引擎的回溯次数会呈指数级或阶乘级增长,导致CPU长时
1
回答数
量词(quantifier)就是“规定前面的东西要出现多少次”的符号。
量词(quantifier)就是“规定前面的东西要出现多少次”的符号。 它只跟“前面的一个原子”搭配使用——原子可以是单个字符、字符类、分组、反向引用等 量词 等价写法 含义 示例 ? {0,1} 0
1
回答数
perl的多行模式m,为什么我不加也能搜到
perl的多行模式m,为什么我不加也能搜到 不加m, \n这些转义序列都会转化控制字符,这个“afaf\nafafa” 整个字符串匹配,\n也是字符其中一员
1
回答数
perl正则匹配加g参数,会死循环
while($name =~ /erw/){ print $& } 这种没有加g参数,会死循环,一直打印erw,perl
1
回答数
元字符的理解
\n \t \r既然是转义序列,不是元字符,为什么有的编程语言能识别,有的正则能识别,有的都能识别,如\b,\s等
1
回答数
总结下上面所有语言都空格换行处理
通用空白处理识别标准(适用95%+场景) ✅ 规则1:语法分隔符原则 所有语言中,空格/换行在语法单元之间仅作为分隔符,多余数量会被压缩: code print("Hello") + "World"
1
回答数
\n和包含显示回车一样吗
前提都是linux: $name="afa dfa"; while($name =~ /fa/mg){ print $& } 中的: $name="afa dfa"; 和 $name="afa\ndf
1
回答数
为什么这个perl可以输出,都没有多行模式m参数
$name="aadffdF \n erw" $name =~ /(?i:aadffdf)/\s*er/ print $& 为什么这个perl可以输出,都没有多行模式m参数
1
回答数
\r,\n等属于正则表达式么
notepad++里面: ctrl+h会弹出一个框,里面查找模式有: 普通 扩展(\n,\r,\t,\0,\x...) 正则表达式 正则表达式不是包含扩展(\n,\r,\t,\0,\x...)么,这里
1
回答数
perl: $name迭代一次后,name不就消失了么
$name="aAbBcCbB"; while($name =~ /bB/g){ # 将迭代两次 print "pre match: $` \n"; print "match: $& \n"; pri
1
回答数
^[^ ]+ +这个正则是什么意思
[ ]+ +这个正则是什么意思 分段解释: ^ 匹配行首。 [^ ]+ [^ ] 整体只匹配 一个字符,[^]取反,这个字符的取值范围是“除了空格(space,ASCII 32)之外的任意单个字符”。
1
回答数
perl使用=~符号和shell的[[ ]]中正则很像
perl使用=~符号表示要用右边的正则表达式对左边的数据进行匹配,和shell的[[ ]]中正则很像
1
回答数
为什么用环视?
我是说,正则表达式里面那个断点,零宽断言环视。与我 grep 命令字符串也能达到同样的效果,为什么用环视?
1
回答数
echo "malongshuai" | perl -e ”$name=<STDIN>;print $name;"报错
perl命令行加上-e选项,就能在perl命令行中直接写perl表达式
1
回答数
<STDIN>来读取来自非文件的标准输入,怎么用上面while读取大文件,和(<>)区别?
<STDIN>来读取来自非文件的标准输入,怎么用上面while读取大文件,和(<>)区别? 在 Perl 中使用 while 循环从标准输入(STDIN)逐行读取大文件是最高效且推荐的方法。与 for
1
回答数
foreach 循环要求将待遍历的列表放在圆括号 ()
报错的原因是 语法写错了——Perl 的 foreach 语法需要把列表放在圆括号里,并且用尖括号读取句柄时要写完整: perl 复制 !/usr/bin/perl foreach $line (<S
1
回答数
vim常用设置缩进4个字符
set tabstop=4 set shiftwidth=4 set expandtab
1
回答数
shell的双引号和单引号,不加引号都支持转义吗,perl呢,其他语言呢
shell中单引号是最严格的,完全禁用转义,这符合它“原样输出”的设计目标。双引号允许转义特定字符如$和",但奇怪的是\n这种传统转义在shell双引号里不生效——这点必须强调,因为很多人会踩坑。不加
1
回答数
支持Perl正则
grep -P、ack都支持Perl正则,且很多需要使用到正则的服务软件一般都采用PCRE(如httpd、nginx、haproxy、proxysql),它和Perl正则几乎完全一致。
1
回答数
grep -E '\d' passwd 是找什么\d会被当做元字符吗
grep -E '\d' passwd 是找什么\d会被当做元字符吗,还是\d会转义,如果转义后是什么? 以下几种,有些工具不支持(-E就不支持),但perl都支持: \s:匹配空白字符,等价于[[:
1
回答数
正则表达式的\b,环视都可以看作断言
“断言”这个词在正则里沿用,确实容易把两种语境混到一起,但它并不是误用,而是“断言”本身在英文中就有两条不同层次的含义: 日常 / 编程语境:说话人“拍着胸脯说一定如此”,带有主观承诺色彩。 形式语言
< Prev
1
···
4
5
6
7
8
9
10
11
12
13
Next >
_java_python
园豆:984
排名:300
博问搜索
关于博问
»
博问帮助
»
发现问题
»
我有建议