regex - 正则表达式获取一行上的数字
问题描述
我必须在 Perl 中添加一些简单的行,但我并没有完全了解正则表达式以及我必须如何使用它。我运行一个文件并从那里获取输入:
open myFile, "csh ........
我通过执行“ print
”来遍历文件输出的行,我看到其中一行是:
TaskID: 1000
(那里有很多空间)。我想要做的只是识别行开头的情况TaskID:
,然后将数字放入变量中。
为了识别以 开头的行TaskID
,我做了:
if (/TaskID:/) {
我的问题:
- if 条件有效,它确实会找到以 . 开头的行
TaskID
。但这是正确的方法,还是有更好的方法? - 我不知道如何将这一行中的数字放入变量中。
我试过类似的东西:
my $mytask = $1;
但是,它不明白。您能帮我了解如何获取号码吗?
解决方案
$1
包含与第一个捕获 ( (...)
) 匹配的文本。您的模式没有捕获,因此不设置$1
. 固定的:
if (/^TaskID:\s*(\d+)/) {
my $task_id = $1;
...
}
但我喜欢避免使用$1
.
if ( my ($task_id) = /^TaskID:\s*(\d+)/ ) {
...
}
推荐阅读
- jenkins - 在 Bash 脚本中,如何退出整个脚本并返回成功
- matlab - 如何使用 fzero() 在 MATLAB 中求解多项式方程?
- laravel - 如何散列最后一个插入ID并设置到请求中然后保存到laravel中的db中。?
- javascript - 我在 javascript 中遇到 DOM 的问题
- scala - 如何在 Play 中获取原始请求正文?
- android - Google Play 64 位要求 Gamemaker Studio
- javascript - 角度如何使用查询列表对象?
- java - 在控制台中使用在 Eclipse 中创建的包运行代码
- javascript - 如何获得此加载屏幕效果
- java - 如何实现一种以异步方式处理服务超时的方法?