在lua的string.find方法用法为
string.find(s1, s2)
含义为查找字符串s2在s1中出现的位置,如果找不到,返回nil。
但这个方法实际上是以正则表达式来解释s2的,所以
string.find('if ( i > 10 )', '(')
这个表达式运行时会出现错误unfinished capture。
lua中的正则表达式使用的特殊字符为^$()%.[]*+-?。所以对于这些字符都需要用%进行转义。所以上面的表达式正确用法应该为
string.find('if ( i > 10 )', '%(')