2014-10-23 3 views
0

정규 표현식은 놀라운 것입니다. 나는 정규식 유아기에있어 다음과 같은 문제를 해결하는 것이 크게 감사 할 것입니다.정규 표현식을 사용하여 일치 항목에 텍스트 삽입

나는 연산자, 힘 또는 음수 기호로 둘러싸여 있지 않은 P 문자와 일치하는 문자열을 검색해야합니다. 그런 다음 곱셈 기호를 삽입해야합니다. 케이스의 예는 다음과 같습니다

33+16*55P would become 33+16*55*P 
2P would become 2*P 
P(33*sin(45)) would become P*(33*sin(45)) 

내가 핸들을 생각하는 몇 가지 정규식을 쓴이 내가 정규식을 사용하면 내가 문자를 삽입 할 수있는 방법을 모른다하더라도 :

등록 내가 쓴됩니다

은 다음과 같습니다

를 정규식이 사용됩니다
[^\^\+\-\/\*]?P+[^\^\+\-\/\*] 

언어는 정규식의 라이브 예가에서 볼 수있는 액션 3.

입니다 :

,

http://www.regexr.com/39pkv

내가 일치 즉 P2의 중간에 곱셈 기호를 삽입하는 방법을 누군가가 나를 보여줄 수 있다면 대규모 감사하겠습니다은 22.5P는 22.5P

액션 스크립트 3가 검색이되고, P의 *이된다 , 모든 정규 표현식을 사용하는 함수를 일치시키고 바꿉니다. 이 문맥에서 string.replace (expression, replaceText)를 어떻게 사용하는지 확신 할 수 없습니다.

미리 감사드립니다.

답변

1

정규 표현식 인 궁금증 (머리를 찢어 버리는 필연적 인 좌절감)에 오신 것을 환영합니다. 아마도 using regular expressions in ActionScriptthis similar question에 대한 문서를 읽어야합니다.

RegExp.test()String.replace() 기능을 결합해야합니다. ActionScript가 무엇인지 모르므로 작동 여부는 알 수 없지만 위에 링크 된 설명서를 기반으로하면 아래에서 테스트 솔루션의 형태가 무엇인지 알 수있는 좋은 출발점이 될 것입니다. 처럼. 나는 @ Vall3y가 옳다고 생각한다. 바꾸기 권한을 얻으려면 먼저 P까지 이어지는 것이 있는지 확인한 다음 P 이후의 항목이 있는지 확인해야합니다. 두 함수는 Regex로 너무 멋지게 만들지 않고도 더 쉽게 이해할 수 있습니다.

2

정규식은 문자열의 패턴을 찾는 데 사용됩니다. 그것들을 조작하는 데는 사용할 수 없습니다. 당신은 그것에 대한 액션 스크립트를 사용해야합니다.

많은 프로그래밍 언어에는 regex 패턴을 허용하는 string.replace 메소드가 있습니다. 두 가지 경우 (P 이후와 P 이전에 삽입)가 있기 때문에 간단한 해결책은 정규 표현식을 두 개로 분할하는 것입니다 (예 : [^\^\+\-\/\*]?P+P+[^\^\+\-\/\*]). 각 패턴을 일치하는 문자열로 전환하십시오 ("* P "및"P * ")

관련 문제