2016-10-23 2 views
0

RegExp 패턴을 사용하고 새 RegExp 패턴을 사용할 때 다른 결과가 나타납니다 ... RegExp를 가진 멍청한입니다. 그래서RegExp RegExp 처리 방법 구문 분석기에 전화 할 때?

import flash.display.SimpleButton; 
import flash.display.Sprite; 
import flash.display.Graphics; 
import flash.text.TextField; 
import flash.ui.ContextMenu; 

    var myString1:String = "Sharsks in the sea"; 
    var pattern1:RegExp = new RegExp("^\s*|\s*$","gim"); 
    var pattern2:RegExp = new RegExp("\s*|\s*$","gim"); 
    var pTest:RegExp = /\s*|\s*$/gim; 
    var result1:String = myString1.replace(/^\s*|\s*$/gim,"_"); 
    var result2:String = myString1.replace(pattern1,"_"); 
    var result3:String = myString1.replace(/\s*|\s*$/gim,"_"); 
    var result4:String = myString1.replace(pattern2,"_"); 
    var result5:String = myString1.replace(pTest,"_"); 

    trace(result1); 
    trace(result2); 
    trace(result3); 
    trace(result4); 
    trace(result5); 

    outputs : 
    _Sharsks in the sea_ 
    _harsks in the sea_ 
    _S_h_a_r_s_k_s__i_n__t_h_e__s_e_a_ 
    __h_a_r__k__ _i_n_ _t_h_e_ __e_a_ 
    _S_h_a_r_s_k_s__i_n__t_h_e__s_e_a_ 

사람은 나에게 새로운 연산자와 논리 정규식 패턴의 차이를 알 수 있습니다.

나는 그 아주 바보 같은 질문을 알고, 그래서 저를 용서,하지만 난 혼란 스러워요 ...

정규 표현식 클래스는 당신이 수행하는 데 사용할 수있는 패턴 인 일반 표현식을 사용할 수 있습니다

답변

1

문자열을 검색하고 문자열의 텍스트를 바꿉니다. 당신은 새로운 정규식() 생성자를 사용하거나 변수에 정규식 리터럴을 할당하여 새 RegExp 객체를 만들 수 있습니다

var pattern1:RegExp = new RegExp("test-\\d", "i"); 
var pattern2:RegExp = /test-\d/i; 

adobe에서, 그들은 동일합니다.

+0

감사합니다. @NealDavis (upvoted)하지만 왜 trace (result4)로 다른 출력을 얻었습니까? 및 추적 (결과 5); ? 저를 쉽게 알 수있는 방법이 있습니까? 나는 이것을 내일 시도 할 것이다! 아마도 그것은 즉시 의미가있을 것입니다. (나는 그것을 원한다);) – tatactic

+1

두 번째 백 슬래시 앞에 슬래시를 넣어야 할 수도 있습니다. –