繁体   English   中英

如果使用正则表达式-字符串匹配整个字符串还是整个字符串+另一个字符?

[英]if with regex - string matches either entire string OR entire string + another character?

抱歉,如果这样的问题已经有了答案,我不确定如何措辞,所以我会尽力而为。

如何使if语句匹配整个字符串,或者匹配带有附加字符的整个字符串?


假设$animals变量中存储有,dog,cat,pig,bird,goat, 我想查看用户定义的变量$your_pet是逗号分隔值之一还是在末尾带有“ s”。

因此,也许会像这样工作:

your_pet=bird

if [[ "${your_pet}" == ,*"${animals}"*, || "${your_pet}"s == ,*"${animals}"*, ]]
then
....

但是 ,我需要检查$your_pet是否以“ s”结尾,并且接受它是否存在。 (上面的代码未经测试,但我几乎可以肯定它不起作用)。

以下是$your_pet所有允许值:

dog
dogs
cat
cats
pig
pigs
bird
birds
goat
goats

这里有什么是不允许的一些例子:

my dog
my dogs
 dog
hamster
hamsters

我觉得在if语句中使用regex可以解决问题,但是我对regex不太了解要使用什么。 (如果在这种情况下甚至需要使用正则表达式)

在OS X 10.11.6 El Capitan上使用bash 3.2.57(1)-发行版

谢谢

您可以删除s (如果存在),然后比较是否匹配

your_pet=bird

if [[ "$animals" =~ ",${your_pet%s}," ]]
then
   ...

但是,要考虑到鹅,鹅等其他复数形式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM