簡體   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