[英]What is the posix regular expression for rm *?
我想為rm *
編寫一個posix正則表達式,其中rm
和*
之間可以有1到多個空格。 以下是我提出的正則表達式。 我已經在一些在線posix正則表達式測試器上測試了它,但它在我的程序中不起作用。
正則表達式: ^rm[[:space:]]+[*]$
regex_t regex;
int reti;
reti = regcomp(®ex, "^rm[[:space:]]+[*]$", 0);
if( reti ){ fprintf(stderr, "Could not compile regex\n"); exit(1); }
reti = regexec(®ex, linux_command_1, 0, NULL, 0);
if( reti == REG_NOMATCH )
{
system(linux_command_1);
}
由於ERE支持的+
修飾符,它不起作用。 (有關詳細信息,請參閱正則表達式 。)
你需要將cflags
設置為REG_EXTENDED
,即說:
reti = regcomp(®ex, "^rm[[:space:]]+[*]$", REG_EXTENDED);
+
是一個擴展的正則表達式功能。 將REG_EXTENDED
標志傳遞給regcomp
。
這個看起來很有效
^rm\s+\*$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.