我有以下的文本字符串和正則表達式模式在AC程序:的Posix正則表達式捕獲組匹配序列
char text[] = " identification division. ";
char pattern[] = "^(.*)(identification *division)(.*)$";
使用regexec()庫函數,我得到了以下結果:
String: identification division. Pattern: ^(.*)(identification *division)(.*)$ Total number of subexpressions: 3 OK, pattern has matched ... begin: 0, end: 37,match: identification division. subexpression 1 begin: 0, end: 8, match: subexpression 2 begin: 8, end: 35, match: identification division subexpression 3 begin: 35, end: 37, match: .
我因爲正則表達式引擎以貪婪的方式匹配,並且第一個捕獲組(。*)匹配任意數量的字符(除了新行字符),爲什麼它不匹配字符一直到文本字符串的末尾(up到'。')反對只匹配前8個空格?
是否每個捕獲組都將被匹配?
是否有在捕獲組如何文本字符串匹配任何規則?
謝謝。
正則表達式不貪心;誰告訴你的? –