2017-03-09 3 views
2

이 두 정규 표현식을 결합해야합니다.두 개의 정규 표현식을 결합하는 데 도움이 필요합니다.

먼저 하나 :이 사이의 모든 정보와 일치하는 데 사용됩니다

\)\p{Any}*?\(

) 및 (

두 번째 정규식은 :

[^/.;\p{L&}\p{Nd}-]+ 

이 특정 "잘못된 문자가 일치하는 데 사용됩니다 "프로그램에서.

나는 이것들을 함께 사용하면, 유효하지 않은 사이에 발견되는 문자)와 tches (

예 :

111111111(11111#1111)1111 
11111111$1111111111111111 
1111.;/-1111111(1111&111) 
1111111111$11111111111111 
1111111(11111111$1111)111 
111111111111$111111111111 

내가 2, 4 및 6 라인에있는 세 개의 $ 일치에만 결합 된 정규 표현식의 결과를 필요 . . "잘못된 문자"의

정의 - 모든 비 영숫자를 제외/-

나는이 모든 새로운 오전 그리고 난 내 최선을 시도하고있다. 이것은 나를위한 일회성 일입니다. 정말 도움이 필요해. 나는 전에이 질문을 올렸고 아무도 내게 어떤 입력을 주었다. 그들은 단지 내 게시물을 비평하고 더 많은 질문을했다. 어떤 지침이든 대단히 감사합니다.

오, 그리고 어떤 차이가 있다면 EditPad에서 정규식을 사용하고 있습니다.

+0

[이 표현식] (http://regexstorm.net/tester?p=%28%3f%3c%3d%5c%29%5b%5e%28%5d*%3f%29%5b % 5e % 28 % 2f % 3b % 5cp % 7bL % 7d % 5cp % 7bNd % 7d- % 5d % 2b % 28 % 3f % 3d % 5b % 5e % 28 % 5d * % 28 % 3f % 3a % 5c % 28 % 7c % 24 % 29 % 29 & i = 111111111 % 2811111 % 231111 % 291111 % 0d % 0a11111111 % 241111111111111111 % 0d % 0a1111 % 3b % 2f-1111111 % 281111 % 26111 % 29 % 0d % 0a1111111111 % 2411111111111111 % 0d % 0a1111111 % 2811111111 % 241111 % 29111 % 0d % 0a111111111111 % 24111111111111). –

+0

OH! 너무 가까이! 그 일치하는 공백, 나는 그것을 어떻게 지켜야합니까? 정말 고맙습니다!!! –

+0

문자 클래스에'\ s'을 추가하십시오 :'(? <= \) [^ (] *?) [^ \ s (/.; \ p {L} \ p {Nd} -] + (? = [^(] * (? : \ (| $))' –

답변

0

당신 수도 가변 폭 (EditPad 무한 폭 lookbehinds을 지원하기 때문에) lookarounds에 따라 정규식 사용하십시오 regex demo

세부를 참조

(?<=\)[^(]*?)[^\s(/.;\p{L}\p{Nd}-]+(?=[^(]*(?:\(|$)) 

을 :

  • (?<=\)[^(]*?) - 이어야하며 ( 이외의 0 개 이상의 문자가 있어야합니다. ,
  • [^\s(/.;\p{L}\p{Nd}-]+ 현재 위치 전에 가능한 몇 가지로 - 공백 (\s), (, ., ;, 문자, 숫자 및 -
  • (?=[^(]*(?:\(|$)) 이외의 1 이상의 문자 - ( 또는 문자열의 끝이 있어야합니다 ((?:\(|$)) 현재 위치의 오른쪽에 ( ([^(]* 참조) 이외의 0 개 이상의 문자 뒤에.