gpt4 book ai didi

regex - 获取包含给定子字符串的字符串的一部分

转载 作者:行者123 更新时间:2023-11-29 09:18:07 24 4
gpt4 key购买 nike

在 bash 中,我有一个字符串,想获取包含某个子字符串的部分(分隔符是空白字符)。就像我有

LIST="some string with a substring you want to match"

我的子字符串是“ubst”。我想要返回字符串“substring”。 (在多个匹配的情况下,它应该返回匹配的第一个子字符串。)

字符串的部分是编译器标志。因此它们可以包含特殊字符(但不能包含空格)。

最佳答案

使用 awk 你可以这样做:

str="some string with a substring you want to match"
awk -v s='ubst' -v RS=' ' '$0 ~ s' <<< "$str"
substring
  • -v RS=' ' 将记录分隔符设置为空格,从而将每个空格分隔的单词分成单独的记录。
  • $0 ~ s 将在单词与您给定的搜索词匹配时返回单词

PS:如果您只想打印第一个匹配项,请使用:

awk -v s='ubst' -v RS=' ' '$0 ~ s{print; exit}' <<< "$str"

只是为了学术练习,如果想要单个 grep,那么使用这个 PCRE 正则表达式:

grep -oP '^(?:(?!\w*ubst).)*\K\w*ubst\w*' <<< "$str"

关于regex - 获取包含给定子字符串的字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34819844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com