2016-11-27 2 views
-1

예 : 나는나는 "등 (ABC OR (DEF 및 dshd을)) .. 같은 패턴을 받아들이는 정규식이 필요

  1. 문자열로 모두 받아 들여야 다음과 같은 조합의 패턴을 받아들이는 정규식 패턴이 필요 중괄호없이 중괄호없이 각 문자열의 첫 단어는 NOT 또는 NOT으로 시작해야합니다.
  2. 문장의 모든 단어 뒤에 AND/OR을 붙여야합니다.

  3. 예 : "(CBE NOT AND (남자 또는 암탉))

+2

지금까지 정규 표현식은 무엇입니까? –

+5

중첩 된 구조를 다루려고하기 때문에 정규식은 최선의 도구가 아닙니다. 파서를 찾고있을 가능성이 큽니다. 어쩌면 ANTLR로 하나를 만들려고 노력하십시오. – Pshemo

+1

@Pshemo 소원 나는 한 번 이상 귀하의 의견을 upvote 수 있습니다. 나는 또한 [Javaluator] (http://javaluator.sourceforge.net/en/home/)라는 도구를 사용하여 좋은 마일리지를 얻었습니다. –

답변

0

질문은 명확하지 않다, 그러나 제공되는 정보를 기반으로 : /(NOT |) ([AZaz]) \ + 승 (AND | OR) (([AZaz])는 \ + (AND 승 | OR) + w ([AZaz]) \)/g

이 경우 다음을 위해 잘 작동 : 을 (CBE NOT AND (남자 또는 암탉)) (cbe AND (남자 또는 암탉)) NOT cbe AND (남자 또는 암탉)

여기에 l 잉크 : http://regexr.com/3eoik

+0

자바 정규식은/(슬래시) 자체가 일치하므로 믿을 수 없다고 생각합니다. 나는 당신의 링크로 조금 놀았고, 어떤 상황에서는 우스꽝스럽게 행동한다고 ​​생각합니다. "(남자와 암탉이 아닌)"에서 일치하는 것을 찾지 못합니다. "(c 또는 (남자 또는 암탉이 아닌))"도 마찬가지입니다. –

관련 문제