正则表达式 – 为什么非捕获组(?:)似乎不起作用?
发布时间:2020-12-14 06:26:26 所属栏目:百科 来源:网络整理
导读:my $str='expire=0';if ($str =~/expires*=s* (?: 0[1-9]|[1-9][0-9])/){ print " found it ";} 它不起作用 条件到期=后面应该是1-99之间的数字? 你的正则表达式有空格,删除它们: /expires*=s* (?: 0[1-9]|[1-9][0-9])/ ^ ^ 正则表达式0 [1-9] | [1-9]
my $str='expire=0'; if ($str =~/expires*=s* (?: 0[1-9]|[1-9][0-9])/){ print " found it "; } 它不起作用 条件到期=后面应该是1-99之间的数字?
你的正则表达式有空格,删除它们:
/expires*=s* (?: 0[1-9]|[1-9][0-9])/ ^ ^ 正则表达式0 [1-9] | [1-9] [0-9]也不匹配0. 编辑: 根据您的评论,您希望在expire =之后允许1-99之间的数字,以便您可以使用: /^expires*=s*(?:[1-9]|[1-9][0-9])$/ 或更短的版本: /^expires*=s*(?:[1-9][0-9]?)$/ 因为你的例子在expire之后有0,所以它不匹配. 另请注意,我添加了开始和结束锚点.没有它们,正则表达式可以匹配输入的任何有效子字符串.例如,它可以在输入expire = 999中匹配expire = 99 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 从头开始,搭建一个正则表达式引擎(二)搭建自动机(3.17修
- oracle存储过程执行时间的统计
- 在Swift / Xcode中将JSON从AlamoFire / SwiftyJSON转换为Di
- cocos2d-x中CCLabelAtlas的小图片拼接
- 2017-03-27Oracle故障gc buffer busy acquire导致数据库不可
- c# – 使用LIKE表达式时SQLite中的土耳其语字符
- winform技巧—去掉Flash右键菜单
- c# – Microsoft.Office.Interop.Excel.dll未包含在构建文件
- 在Flash中利用Actionscript在动态文本框中加载HTML格式的文
- c – Variadic模板方法和std :: function – 编译错误