문자열에서 필드를 가져 와서 반환하려고합니다.ActionScript Regex의 문제점은 무엇입니까?
내 기능 :
public function getSubtype(ut:String):String {
var pattern:RegExp = new RegExp("X=(\w+)","i");
var nut:String = ut.replace(pattern, "$1");
trace("nut is " + nut);
return nut;
}
나는 그것에게 문자열을 전달 해요 :
http://foo.bar.com/cgi-bin/ds.pl?type=boom&X=country&Y=day&Z=5
추적 문은 밖으로 수정과 위의 문자열을 반환합니다.
저는 Ryan Swanson의 Flex 3 Regular Expresion Explorer에서 패턴을 시도해 보았습니다 : X = 국가. 결과에 대한 나의 희망은 "나라"입니다.
분명해야하지만 나는 그것을 볼 수 없습니다. 어떤 도움을 주시면 감사하겠습니다.
TB
는 다음에 내 기능을 변경하고 그것을 작동 :
이public function getSubtype2(ut:String):String {
trace("searching " + ut);
var pattern:RegExp = new RegExp("X=([a-z]+)");
var r:Object = pattern.exec(ut);
trace("result is " + r[1]);
return r[1].toString();
흥미롭게도 불구하고, 일치하지 않는 X = (\ + w)를 사용하면 오류가 발생합니다. ???? }
네, 그게 더 좋은 방법입니다. AS가 Java와 같은 경우 다음과 같이 시도해야합니다. 새 RegEx ("X = (\\ w +)", "i"); – PhiLho
어도비 워드 프로세서는 \ w +를 예로 사용하지만. – Todd
* regex 리터럴에서는'/ X = (\ w +) /'하나의 백 슬래시를 사용합니다. RegExp 생성자에 전달하기 위해 * 문자열 * 리터럴로 쓰고 있습니다 :'new RegExp ("X = (\\ w +)")'; 그래서 백 슬래시 두 개를 사용해야합니다. ref : http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/RegExp.html –