簡體   English   中英

'?' 在C Posix正則表達式中不起作用

[英]'?' not working in C Posix regular expressions

我正在嘗試在C中的雙引號內提取字符串。例如:

String[100] = "Hi,\"This is awesome\" and \"So is this\""

我只需要找到第一個匹配項,“這太棒了”。 這就是我嘗試過的

regcomp(&preg, "\"(.*?)\"", REG_EXTENDED);
regexec(&preg, String, 2, regm, 0);

regm是匹配數組。

而不是"This is awesome" ,我得到了"This is awesome" and "So is this"

不是? (.*?)中將reg exp限制為找到第一個匹配項?

否。顯然是這個.*? 您編寫的內容旨在成為“非貪婪重復”,並且來自Perl或其他某種語言(不確定哪種語言)。 在POSIX ERE中沒有特殊含義; ? 只是多余的。 而是嘗試使用正確的格式: "\\"([^\\"]*)\\""

POSIX ERE的規范可以在這里找到:

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04

暫無
暫無

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

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