Lua関連文字列の切り取りとマッチング

1901 ワード

1.文字の「()」の内容を切り取る.
  
1     local   num1 = string.find(str1,"(");

2     local   num2 = string.find(str1,")");

3 

4     local   str2 = string.sub(str1,0,num1);

5     local   str3 = string.sub(str1,num1+1,num2);    

コードには行1のようにstringが直接使用する.findはエラーを報告します.
  lx13.lua:2: unfinished capture
  stack traceback: [C]: in function 'find'
「(」を魔法文字として使用するには、%記号を使用してエスケープする必要があります.
2.stringを使用する.matchと正則は文字列の両端のスペースを除去することを実現する.  
Str = string.match(Str,"%s*(.-)%s*$");

3.stringを使用する.matchと正則はアルファベット、数字、漢字外の文字を判断することを実現する.
Str2 =  string.match(Str2,"^[A-Z-a-z-0-9-\128-\254]+$"); 
--return nil or Str2