정말 단어를 찾는 Regex를 작성하는 데 어려움을 겪고 있습니다. 그러나 그 단어가있는 행이 시작되지 않는 경우에만 - . 단어에 대한Regex가 일치하지 않는 행에 일치하는 단어를 찾으려면
봐 : 내가 좋아하는 부정적인 lookbehinds를 사용하여 시도
-- check if //should not match
-- more random words if //should not match
check if //should match
경우 : 예를 들어
(?<!-- .*)\bif\b
그러나 나는 또한 자바를 사용하고있어, 내가 사용할 수 없습니다 lookbehinds의 한정 기호. 내가
(?<! --)\bif\b
을하려고하면
은 내가 SKIP과 F의 사용을 발견
-- if \\works
-- if \\does not work
에 대한 작업을 수행하지만, 자바는이 두 가지를 수용하지 않는 것 같다.
어떻게 해결할 수 있습니까?
감사합니다.
'! line.startsWith ("-") && line.matches ("\\ bif \\ b")'의 문제점은 무엇입니까? 당신이 정규식으로 모든 것을해야한다고 주장함으로써 모든 것을 더 복잡하게 만드는 좋은 이유가 있습니까? – ajb
안녕하세요 @ajb, 나는 여러 단어가 일치하는 여러 줄 문자가 있습니다. 나는 이미 일치해야하는 모든 단어를 반복하는 루프를 가지고있다. text.replaceall을 사용하여 전체 텍스트를 \ n 분할하고 각 줄을 반복 할 필요없이 일치해야하는 각 키워드를 반복합니다. –
@ 타케시 ajb 님의 댓글은 AFAIK에 있습니다. Java의 문자열 연산을 사용하는 것은 간단하고 유지하기가 쉽지만 필요한 정규 표현식은 복잡 할 수 있습니다. –