[英]'?' 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.