如何解决使用括号将表达式分组以防万一
我想在foreach ($data["{$section['id']}"] as $value) {
if (!empty($value)) {
code......
}
}
中用()将表达式分组,就像这样:
case
这并没有取得任何成功。我也尝试过:
case a in
'*(a|b)*') printf '%s\n' 'something something';;
esac
*(a|b)*
我都没有成功。
解决方法
这将是特定于Bash的:
您需要启用b = np.array([1,1])
B = np.tile(b,(A.shape[0],1))
array([[1,1],[1,1]])
A + B
并使用此特定语法
extglob
请参见#!/usr/bin/env bash
shopt -s extglob
case "$1" in
*@(a|b)*) printf '%s\n' 'something something';;
esac
:
如果使用内置的shopt启用了
man bash
shell选项,则会识别出几个扩展的模式匹配运算符。在以下描述中,模式列表是由extglob
分隔的一个或多个模式的列表。可以使用以下一个或多个子图案来形成复合图案:
|
匹配零个或一次出现的给定模式?(pattern-list)
匹配零个或多个给定模式的出现*(pattern-list)
匹配给定模式的一个或多个出现+(pattern-list)
匹配给定的模式之一@(pattern-list)
匹配除给定模式之一以外的任何内容
或者,您可以让!(pattern-list)
在下一个模式的命令组中继续执行,方法是在命令组末尾使用特殊的case
标记。
这是 NOT POSIX ,但由 ;&
, bash
或 {{1} } 仍然:
ksh
现在,正如that other guy在评论中指出的那样。
POSIX方式:
zsh
,
您可以转换为基本模式匹配,如下所示:
case 'a' in
*a*|*b*) printf '%s\n' 'something something';;
esac
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。