Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex bash使用什么正则表达式库_Regex_Bash - Fatal编程技术网

Regex bash使用什么正则表达式库

Regex bash使用什么正则表达式库,regex,bash,Regex,Bash,我正在自学bash脚本,我现在学习的第一个元素是正则表达式。我通过购买的视频学习正则表达式,讲师让我使用的regex测试仪是RegexPal,它是一个专门针对java脚本regexe的测试仪。有人能告诉我bash使用的正则表达式的类型或库吗?我想确保我正在学习能够在bash脚本中使用的适当内容。我知道RegexBuddy是一个选项,但是如果我最终在bash中使用它们,我会使用哪种类型的regex呢。非常感谢您的帮助。使用的Bash regex相当标准。例如: [[ $var =~ ^[0-9]+

我正在自学bash脚本,我现在学习的第一个元素是正则表达式。我通过购买的视频学习正则表达式,讲师让我使用的regex测试仪是RegexPal,它是一个专门针对java脚本regexe的测试仪。有人能告诉我bash使用的正则表达式的类型或库吗?我想确保我正在学习能够在bash脚本中使用的适当内容。我知道RegexBuddy是一个选项,但是如果我最终在bash中使用它们,我会使用哪种类型的regex呢。非常感谢您的帮助。

使用的Bash regex相当标准。例如:

[[ $var =~ ^[0-9]+$ ]] && echo "it's a number"
值的范围​​(
[0-9]
例如,
^
符号表示开始,
$
符号表示结束,出现次数(
+
表示一次或多次,
*
表示0次或多次,
{n,m}
表示n次和m次之间,
{n}
表示n次,…)。它们存在于所有允许我们使用正则表达式的语言中

因此,我认为任何制造正则表达式工具都可以用于此目的(只需做一些调整。例如,在PHP中,在某些语言中有分隔符​​对于数字,…)有类似于
\d
的快捷方式

然而,Bash非常有限,但可能伴随着其他工具,如
egrep
grep-E
)、
sed
awk


无论如何,在使用制造regex工具之前,我认为您必须了解regex的语法,才能知道工具的建议是否正确。

Bash regex引擎有点有限。我强烈建议您使用Perl学习正则表达式,您将学到的任何技能都可以轻松应用到bash正则表达式中。谢谢Samuel。我会照你的建议去做。在bash中不经常使用regexp!地球仪的使用频率更高。否则,它使用POSIX正则表达式函数,其中的
man
位于
man3正则表达式(在我的系统上)。我不明白为什么这个问题作为一个主题外的线程来结束。这是一个关于编程(shell脚本、regex、perl…)的问题,不是吗?这个问题很有价值,如果它的重点是要求对bash中的regex和接受regex的各种实用程序进行高层次的概述,包括许许多多相关的陷阱。这正是我想知道的。谢谢伊德里斯。@JudeT.Bonham别忘了将此主题标记为已解决;)