GCC正則表達式
回答
我找到了答案here:
#include <regex.h>
#include <stdio.h>
int main()
{
int r;
regex_t reg;
if (r = regcomp(®, "\\b[A-Z]\\w*\\b", REG_NOSUB | REG_EXTENDED))
{
char errbuf[1024];
regerror(r, ®, errbuf, sizeof(errbuf));
printf("error: %s\n", errbuf);
return 1;
}
char* argv[] = { "Moo", "foo", "OlOlo", "ZaooZA~!" };
for (int i = 0; i < sizeof(argv)/sizeof(char*); i++)
{
if (regexec(®, argv[i], 0, NULL, 0) == REG_NOMATCH)
continue;
printf("matched: %s\n", argv[i]);
}
return 0;
}
以上代碼將爲我們提供
matched: Moo
matched: OlOlo
matched: ZaooZA~!
手冊應該很容易找到:POSIX regular expression functions。如果你不明白這一點,我真的會建議你嘗試刷新你的C和C++技能。
請注意,一旦你有一個匹配,實際上替換一個子字符串是一個完全不同的問題,一個正則表達式函數不會幫助你。
肯定醜陋的文檔..反正我喜歡JavaScript做同樣的工作的方式。 C不會爲這裏的js舉辦蠟燭 – Jaseem 2011-09-29 16:47:46
我強烈建議使用Boost C++正則表達式庫。如果你正在開發嚴重的C++,Boost絕對是你必須考慮的事情。
該庫支持Perl和POSIX正則表達式語法。我個人更喜歡Perl正則表達式,因爲我相信它們更直觀,更容易正確使用。
http://www.boost.org/doc/libs/1_46_0/libs/regex/doc/html/boost_regex/syntax.html
但是,如果你沒有這個罰款圖書館的任何知識,我建議你從這裏開始:
http://www.boost.org/doc/libs/1_46_0/libs/regex/doc/html/index.html
關鍵是我無法使用任何第三方庫。但我建議libstdC++存在於MinGW編譯器集合中,所以我認爲使用標準Unix/Posix/Berkley正則表達式是可能的。 – shybovycha 2011-03-03 19:47:32
- 1. 正則表達式(正則表達式)
- 2. 正則表達式(正則表達式)
- 3. 正則表達式(正則表達式)
- 4. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
- 5. 正則表達式正則表達式返回的值正則表達式
- 6. 正則表達式正則表達式模仿正則表達式
- 7. PHP-MySQLi替換爲正則表達式/正則表達式/正則表達式
- 8. 正則表達式表達
- 9. 正則表達式表達
- 10. 正則表達式表達
- 11. Java正則表達式組與。* vs正常正則表達式
- 12. Nintex正則表達式模式正則表達式
- 13. 設置從正則表達式模式到正則表達式?
- 14. 正則表達式(正則表達式)模式匹配
- 15. Python的正則表達式:「喜歡」正則表達式模式?
- 16. 形式的Java正則表達式PHP正則表達式
- 17. 正則表達式
- 18. 正則表達式
- 19. 正則表達式
- 20. 正則表達式
- 21. 正則表達式
- 22. 正則表達式
- 23. 正則表達式
- 24. 正則表達式
- 25. 正則表達式
- 26. 正則表達式
- 27. 正則表達式
- 28. 正則表達式
- 29. 正則表達式
- 30. 正則表達式
現在你有兩個問題。 – iBug 2017-08-06 00:58:17