regex - 正则表达式不提取组

标签 regex bash sed

我有以下文字

availableMemoryMb: 1024 buildId: b12dfv231-3422-4dsvec-adfdfa-1dvf13vd8 entryPoint: get_request_data httpsTrigger: securityLevel: SECURE_OPTIONAL url: https://us-central1-vvsfdv ds.cloudfunctions.net/evses ingressSettings: ALLOW_ALL labels: deployment-tool: cli-gcloud maxInstances: 1 name: projects/sasvbsd/locations/us-central1/functions/adfva runtime: python37 serviceAccountEmail: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="17767574733a73727157766767646778633970647265617e7472767474786279633974787a" rel="noreferrer noopener nofollow">[email protected]</a> sourceUploadUrl: https://storage.googleapis.com/gcf-upload-us-central1-ed32d2-7232322-44h73-96f0-6610891aa7ca/8f5950a6-0efd-4cca-9297-b5104156208b.zip?GoogleAccessId=service-12332@gcf-admin-robot.iam.gserviceaccount.com&Expires=1619892863&Signature=aH1%2BW741GRtVNM1rrwpz8jfxzhNCnQ%2BP5of%2Bq0ghMrcsmR6lM6PgJnHFVTZ5FsWC484rUhFIhBj5IYNEP0Egw4VA0Ui9o3hQSL9NdqBUMtmLM%2BqKKagHVHtUm1Rfr6U4xRxUm4z0SiHNSMB5aZEfwbdmCj6r%2FEx5HuKp5c9HNyJ8LYXynBrjztlZr9GkmHkyHMPM9CjW0c33BMeEWHEGqxUAj%2FyPksPn7y9WPbQFCiwUiQbd3ayuW%2FMVC53IVwjxkojrzLATGVvu12%2Brc9fQs7Zz%2FEc1ZthUVwBAdBYVj8Fn%2Fde5S7OJwdRUm938N%2B5gCX4x%2B7s25Bq6Lgk%2FLWesLw%3D%3D status: ACTIVE timeout: 60s updateTime: '2021-05-01T17:45:13.094Z' versionId: '7'

我需要从中提取最后一个(并非总是)的versionId(在本例中:7),这是我的正则表达式 sed 's/\(.*\)versionId:\s+\'\([0-9]+\)\'/\2/' 并且不确定为什么它不起作用,它带着我输入的全部内容返回

最佳答案

根据您显示的示例,请尝试在 sed 中执行以下操作。您无需创建 2 个反向引用,只需一个就足以完成此任务。

sed -E 's/.*versionId:[[:spaces:]]+'"'"'([0-9]+)'"'"'/\1/'  Input_file

或者(根据上面 hilipati 的评论可以写成):

sed -E "s/.*versionId:[[:space:]]+'([0-9]+)'/\1/" Input_file

说明:sed中使用-E选项在程序中启用ERE(扩展正则表达式)。然后使用它的 s 选项执行替换,匹配所有内容直到 versionId:spaces ' 并将以下数字保留到第一个捕获组中,在替换时,仅用数字替换整行,这将只给出数字作为输出按要求。

关于regex - 正则表达式不提取组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67353066/

相关文章:

linux shell搜索数字之间不出现的数字

bash - 如何生成不带某些字符或允许某些字符集的 openssl 河豚

csv - 如何使用 awk 将列插入到 CSV 文件中

linux - 在 linux 中搜索和替换一行?

Java 拆分字符串,如果引用,则避免拆分字符

javascript 替换为正则表达式有奇怪的行为

php - LAMP 环境变量 ($PATH) 出现问题

linux - 如何将标准错误重定向到文件

javascript - (?=正则表达式) VS (? :regex)

javascript - 将 ../IMG/xEPI_STOPPED_TOT.gif 替换为 <img src ="">