2009-02-10 2 views
4

alt-0146을 입력 할 수있는이 문자를 찾으려고합니다. Word에서는 유니 코드 0x2019라고 알려주지 만 ColdFusion에서 정규식을 사용하여 일치시킬 수 없습니다. 여기에 내가 두 사이 10 문자와 아포스트로피에 맞게 사용하고 코드 조각이 문자ColdFusion 정규 표현식에서 유니 코드 문자를 어떻게 참조합니까?

[[:alpha:]'\x2019]{2,10} 

이다 그러나 그것은 작동하지 않습니다. 어떤 아이디어?

답변

7

CF에서 \ x 속기는 첫 번째 255 ASCII 문자 만 지원합니다. 이 숫자보다 커지려면 chr 명령을 다음과 같이 인라인으로 사용해야합니다.

<cfscript> 
    yourString = "’"; 
    result = refind("[[:alpha:]'" & chr(8217) & "]{2,10}", yourString); 
    writeOutput(result); 
</cfscript> 

그러면 일치해야합니다.

+0

Spot on! 고맙습니다. – Trigger

2

직접 문자를 포함한다 시도 할 수 있습니다 또 한가지 :

[[:alpha:]'#Chr(8217)#]{2,10} 


그러나 나는 그가 CF 정규식으로 작동하는지 모르겠어요. 그렇지 않다면 여전히 CF 내에서 Java 정규 표현식을 사용할 수 있습니다. 이것은 쉽게 수행 할 수 있으며 거의 ​​모든 유니 코드 지원을 포함하여 훨씬 광범위한 정규 표현식 기능을 사용할 수 있습니다. 당신이 교체하고 있다면

, 당신은 예를 들어, CF 문자열에 직접 자바 정규식을 수행 할 수 있습니다 다른 기능에 대한

<cfset NewString = OrigString.replaceAll('ajavaregex' , 'replacement')/> 


(예를 들어 경기의 배열을 받고, 대신에 콜백 함수를), 나는 Java RegEx Utilities - 단일 기능 호출로 이러한 기능을 단순화하는 단일 구성 요소를 만들었습니다.

+0

감사합니다. 일치/데이터 유효성 검사를하고 있지만 실제로 유효성 검사 코드를 변경하여 편리한 유틸리티를 사용하지는 않습니다./ – Trigger

관련 문제