如何在 Bash 中将空格与正则表达式匹配?

2024-03-25

我希望下面的代码会回显“是”,但事实并非如此。由于某种原因,它与单引号不匹配。为什么?

str="{templateUrl: '}"
regexp="templateUrl:[\s]*'"

if [[ $str =~ $regexp ]]; then
  echo "yes"
else
  echo "no"
fi

Replace:

regexp="templateUrl:[\s]*'"

With:

regexp="templateUrl:[[:space:]]*'"

根据man bash, the =~运算符支持“扩展正则表达式”,如中定义man 3 regex. man 3 regex说它支持 POSIX 标准并建议读者参考man 7 regex。 POSIX 标准支持[:space:]作为空白的字符类。

The GNU bash manual http://www.gnu.org/software/bash/manual/bash.html记录支持的字符类如下:

在“[”和“]”中,可以使用以下命令指定字符类 句法 [:class:], 在哪里class是以下定义的类之一 在 POSIX 标准中:

alnum alpha ascii 空白 cntrl 数字图下部打印
punct space 上位字 xdigit

唯一提到的是\s我在 GNU 中发现的bash文档用于提示中不相关的用途,例如PS1,不在正则表达式中。

的含义*

[[:space:]]将匹配正好一个空白字符。[[:space:]]*将匹配零个或多个空白字符。

和...之间的不同space and blank

POSIX 正则表达式 http://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Extended_Regular_Expressions提供两类空白:[[:space:]] and [[:blank:]]:

  • [[:blank:]]表示空格和制表符。这使得它类似于:[ \t].

  • [[:space:]]除了空格和制表符之外,还包括换行符、换行符、换页符和垂直制表符。这使得它类似于:[ \t\n\r\f\v].

使用字符类的一个主要优点是它们对于 unicode 字体是安全的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Bash 中将空格与正则表达式匹配? 的相关文章

  • 将 JSON 数组转换为 bash 数组并保留空格

    我想将 JSON 文件转换为 bash 字符串数组 稍后我可以对其进行迭代 我的JSON结构如下 USERID TMCCP CREATED DATE 31 01 2020 17 52 USERID TMCCP CREATED DATE 31
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • 正则表达式:仅匹配括号外(以便文本不会在括号内拆分)?

    我有一个目标字符串 如下所示 foo foo foofoo bar foobar foo bar barbar foo bar foo 而且我要 foo foo foofoo bar foobar foo bar barbar foo ba
  • 创建正则表达式来检查强密码

    假设我有一个检查字母数字的正则表达式 我现在想创建另一个正则表达式来检查密码中至少有 1 个数字 我想检查它是否至少有 1 个非字母数字字符 字母或数字以外的字符 我应该单独调用每个函数 如果一个函数失败返回 false 还是有办法将它们合
  • 如果列表中的某个字符位于该字符之前,请选择该字符

    我有这个正则表达式 a z s gmi 该正则表达式选择 从我的文字中 sme a eliezovce 2015 Spolo ne pre Eur pu Osl vili aj 940 但我只想选择 没有 如果列表中的某些字符 a z 之前
  • 伊迪德信息

    重新定义问题 有什么方法可以获取所连接显示器的序列号吗 我想收集显示器的Eid信息 当我使用 logverbose 选项运行 X 时 我可以从 xorg 0 log 文件中获取它 但问题是 如果我切换显示器 拔出当前显示器 然后插入另一个显
  • 如何将命令作为参数传递给 ssh [重复]

    这个问题在这里已经有答案了 我的需要是让这个命令起作用 sshpass p XXXX ssh oStrictHostKeyChecking no email protected cdn cgi l email protection sudo
  • 如何将 bash 脚本的整个输出保存到文件

    我正在尝试将 bash 脚本的整个输出保存到文件中 我目前在代码开头有一个参数 ip 地址 如下所示 bin bash USAGE Usage 0
  • 如何显示 zsh 函数定义(如 bash“type myfunc”)?

    如何在 zsh 中显示函数的定义 type foo没有给出定义 在bash中 bash function foo echo hello bash foo hello bash type foo foo is a function foo e
  • 如何使用 PHP 查找字符串中字符的序列模式?

    假设我有随机的文本块 EAMoAAQAABwEBAAAAAAAAAAAAAAABAgMFBgcIBAkBAQABBQEBAAAAAAAAAAAAAAAGAgMEBQcBCBAAAQMDAgMEBQcIBQgGCwEAAQACAxEEBSEG
  • 正则表达式 - 匹配不包含字符串的模式

    我对正则表达式很陌生 并且一直在寻找方法来做到这一点 但没有成功 给定一个字符串 我想删除以 abc 开头 以 abc 结尾且中间不包含 abc 的任何模式 如果我做 abc abc abc 它将匹配以 b 开头 以 abc 结尾并且中间包
  • 如何将参数传递给java bash脚本? [复制]

    这个问题在这里已经有答案了 我有一个简单的 bash 脚本来运行我的 java 程序 就这个 run sh bin sh java jar target my jar arch jar 我想将参数传递给这个脚本 该脚本必须将它们传递给jav
  • 如何使用 Perl 正则表达式匹配字符串末尾/开头处的空格或单词?

    我想找到与我的正则表达式匹配的序列 它们应该位于由空格包围的字符串中间 末尾或开头或者是字符串中唯一的东西 Example 我们假设序列 qwe45rty 就是我们正在寻找的 我希望能够对所有这些因素都抱有积极的态度 qwe45rty qw
  • 多行 C# 正则表达式在空行后匹配

    我正在寻找一个多行正则表达式 它将匹配空行后出现的情况 例如 给定下面的示例电子邮件 我想匹配 发件人 Alex From s 可以匹配任何 From 行 但我希望它仅限于正文中的行 第一个空白行之后的任何行 Received from a
  • 正则表达式匹配带有连字符和/或撇号的单词

    我正在寻找一个正则表达式来匹配带有连字符和 或撇号的单词 到目前为止 我有 w w w 这在大多数情况下都有效 但如果先有一个撇号 然后有一个连字符 例如 qu est ce 则它不匹配 我可以附加更多选项 尽管也许还有另一种更有效的方法
  • 使用 Python 从网站下载所有 pdf 文件

    我遵循了几个在线指南 试图构建一个可以识别并从网站下载所有 pdf 的脚本 从而避免我手动执行此操作 到目前为止 这是我的代码 from urllib import request from bs4 import BeautifulSoup
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K
  • 正则表达式允许零,只要它不是第一个数字[重复]

    这个问题在这里已经有答案了 昨天我在这里发布了一个问题正则表达式允许 null 或 1 到 9 数字 https stackoverflow com questions 40354842 regular expression allow n
  • powershell stdin 管道和重定向

    你好 我一直在制作一个小的跨平台脚 本 我可以将其卷曲并通过管道传输到bash和Powershell中 基本思想是服务器向解释器发送一个命令 然后它给出一个命令将所有输出重定向到标准输出 bash 中的一个例子是 some commands
  • 正则表达式将单词的开头和结尾与元音匹配

    我正在尝试以下操作Regex aeiou aeiou 但它不起作用 我测试了 abcda 并且不匹配 它应该只是 aeiou aeiou 额外的 您需要第二个字符是一个文字点 例如 a hello 但由于您的测试用例 abcda 不包含这样

随机推荐

  • tinymce 4 如何添加事件处理程序

    在tinymce 3中 我们似乎可以这样做 Adds a click handler to the current document tinymce dom Event add document click function e conso
  • Angular:延迟加载模块重新加载时重置服务状态

    我的申请中关于服务的结构如下 AppModule AppComponent and HomeComponent Lazy1 Lazy2 Lazy3 我的应用程序从 AppComponent 开始 它重定向到 HomeComponent 然后
  • 正则表达式不以数字开头

    如何创建一个匹配所有开头不带数字的字母数字的正则表达式 现在我有 0 9 a zA Z0 9 例如 1ab 不匹配 ab1 匹配 1 bc 不匹配 bc 1 匹配 你所写的内容存在三处错误 首先 要否定一个字符类 您可以将 inside括号
  • 雪花中有保存或加载工作表的选项吗?

    雪花中有保存或加载工作表的选项吗 或者将工作表下载到本地并从本地加载 我的意思不是通过剪贴板将其粘贴到某些文本编辑器并保存这样的选项 Snowflake 会自动保存您的工作表 您还可以将脚本从本地加载到工作表 但是无法下载工作表 Saved
  • QOpenGLWidget显示黑屏

    我尝试了此处描述的 QOpenGLWidget 示例 https stackoverflow com a 31524956 4564882 https stackoverflow com a 31524956 4564882 但我只得到一个
  • 使用IDLE时的工作目录是什么?

    所以 我正在学习 Python 想创建一个简单的脚本来从互联网下载文件 然后将其写入文件 但是 我正在使用 IDLE 并且不知道 IDLE 中的工作目录是什么或如何更改它 如果我不知道工作目录或如何更改它 如何在 IDLE 中执行文件系统操
  • 如何识别“hw.machine”标识符可靠?

    我正在寻找最官方的来源来完成 维护此方法 NSString platformString NSString platform self platform if platform isEqualToString iPhone1 1 retur
  • 如何获取 Woocommerce 电子邮件通知中的 cookie 值?

    我正在使用 php cookie 从插件检索 woocommerce 感谢页面和客户订单详细信息页面的值 它在感谢页面上工作正常 但没有在电子邮件订单详细信息页面上打印任何内容 我该如何解决此问题 我尝试过使用 php 会话获取值 它仅打印
  • itextsharp - 阅读 1 列(第 1 页)和 2 列(第 2 页)的 PDF 时出现问题

    当打开首页上只有一列而其他页面上有超过一列的 PDF 文件时 我的下面的代码丢失了 有人可以告诉我我做错了什么吗 下面是我的代码 PdfReader pdfreader new PdfReader pathNmArq ITextExtrac
  • 如何在 Paw 中执行并发 HTTP 请求?

    在 Paw 中 如果我有一个长时间运行的请求并尝试调用另一个请求 则会出现一个对话框 其中显示Stop request A request is currently running 与选项Cancel Stop and Stop Send
  • 重新连接到网络后如何获取有效的 Firebase appcheck 令牌?

    我在我的 Android 应用程序中使用 Firebase appcheck 它工作得很好 只是如果我在飞行模式下启动应用程序然后禁用飞行模式 即模拟在没有网络连接的情况下打开应用程序 然后获得网络连接 它总是会失败 当我没有连接时 我会反
  • 使用 ARMAResult.predict() 函数的正确方法

    根据这个问题如何使用 statsmodels 和 Python 获得 AR 模型中的常数项 https stackoverflow com questions 24172454 how to get constant term in ar
  • 如何在 macOS 上更改 sourcetree 中 github 帐户的用户名密码?

    我正在使用 SourceTree 并拥有 2 个 GitHub 帐户 我连接并将我的提交推送给其中之一 第一次 SourceTree 要求我输入密码 但是当我想推送到我的其他 GitHub 帐户时 它不会要求我输入密码 只是显示此错误 我找
  • 列,宽度参数不起作用

    我在工作中运行 REHL7column V at column from util linux 2 23 2 我有 csv 文件 其中包含一些带有长字符串的列 我想将 csv 作为表格查看 并限制列宽 因为我 通常对抽查长字符串不感兴趣 c
  • 如何使用 zlib 压缩字符串并恢复字符串?

    我正在尝试利用 Zlib 进行文本压缩 例如我有一个字符串T blah blah blah blah 我需要压缩这个字符串 我在用S zlib compress T 来压缩它 现在我想要的是得到非二进制形式S这样我就可以解压T但在不同的程序
  • 从另一个应用程序中自动安装/卸载应用程序

    我正在开发 Android 设备管理服务 其功能之一是指定应在服务的注册设备上安装哪些应用程序 该场景是 经理将企业应用程序上传到该服务 以便在其员工的 Android 设备上使用 然后 他要求服务部署该应用程序 该服务与设备上预安装的应用
  • 手机关机和开机后,无声通知如何表现

    我有一个应用程序尝试在某些情况下使用静默通知来获取用户的位置 我能够向手机发送静默通知 并能够运行后台获取并将位置返回到网络服务 比较静默通知的用户负载 当应用程序处于后台 挂起模式时 我正在执行一些操作 启动位置管理器并从委托方法中获取位
  • 使用 Bootstrap 进行电子邮件模板设计[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我必须创建一个响应式电子邮件模板设计 我已经设计了一段时间 但从未有机会创建电子邮件模板 我可以使用 Bootstrap 创建电子邮件
  • 从不同组中选择的背包

    我对背包问题有一个变体 我正在努力寻找有效的解决方案 假设您有多组项目 每个组可以有任意数量的物品 每个物品都有一个值和重量 问题是找到总价值最大 重量 也就是说 想象一下你有数百种物品可供选择 但你必须带一份三明治 一份饮料 一份零食 一
  • 如何在 Bash 中将空格与正则表达式匹配?

    我希望下面的代码会回显 是 但事实并非如此 由于某种原因 它与单引号不匹配 为什么 str templateUrl regexp templateUrl s if str regexp then echo yes else echo no