簡體   English   中英

rm *的posix正則表達式是什么?

[英]What is the posix regular expression for rm *?

我想為rm *編寫一個posix正則表達式,其中rm*之間可以有1到多個空格。 以下是我提出的正則表達式。 我已經在一些在線posix正則表達式測試器上測試了它,但它在我的程序中不起作用。

正則表達式: ^rm[[:space:]]+[*]$

regex_t regex;
int reti;

reti = regcomp(&regex, "^rm[[:space:]]+[*]$", 0);
if( reti ){ fprintf(stderr, "Could not compile regex\n"); exit(1); }
reti = regexec(&regex, linux_command_1, 0, NULL, 0);
if( reti == REG_NOMATCH )
{
    system(linux_command_1); 
}

由於ERE支持的+修飾符,它不起作用。 (有關詳細信息,請參閱正則表達式 。)

你需要將cflags設置為REG_EXTENDED ,即說:

reti = regcomp(&regex, "^rm[[:space:]]+[*]$", REG_EXTENDED);

+是一個擴展的正則表達式功能。 REG_EXTENDED標志傳遞給regcomp

這個看起來很有效

^rm\s+\*$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM