Eclipse에서 정규식 검색 및 바꾸기를 수행 할 때 일치하는 검색 문자열을 대체 문자열의 일부로 사용할 수 있습니까?
기본적으로 모든 항목을 바꾸고 싶습니다.
variableName.someMethod()
와:
((TypeName)variableName.someMethod())
여기서 variableName 은 모든 변수 이름이 될 수 있습니다.
sed 에서는 다음과 같이 사용할 수 있습니다.
s/[a-zA-Z]+\.someMethod\(\)/((TypeName)&)/g
즉, & 는 일치하는 검색 문자열을 나타냅니다. Eclipse에 비슷한 것이 있습니까?
감사!
답변
예, “()”는 그룹을 캡처합니다. i가 i 번째 캡처 그룹 인 $ i와 함께 다시 사용할 수 있습니다.
그래서:
검색:
(\w+\.someMethod\(\))
바꾸다:
((TypeName)$1)
힌트 : 텍스트 상자의 CTRL+ Space는 정규식 작성에 대한 모든 종류의 제안을 제공합니다.
답변
…
search = (^. * import) (. *) (\ (. * \) 🙂
replace = $ 1 $ 2 사용
… 대체 …
from checks import checklist(_list):
…와…
from checks import checklist
정규식의 블록은 괄호로 표시됩니다 (앞에 “\”가 붙지 않음)
(^. * import)는 “from checks import”를 찾아서 $ 1로로드합니다 (eclipse는 1에서 계산 시작)
(. *) 다음 찾기 ” 다음 부분 (아래 다음 줄 참조)
(\ (. * \) :)이 “처음에”( “$ 2 블록을 시작한 후 … $ 2 블록을 중지하고 $ 3을 시작합니다. $ 3은”( ‘any text’) : “또는 예에서”(_list) : “와 함께로드됩니다.
그런 다음 교체에 세 블록을 모두 처음 두 블록으로 교체하려면 $ 1 $ 2.
답변
NomeN 은 올바르게 대답했지만이 대답은 저와 같은 초보자에게는별로 유용하지 않을 것입니다. 해결해야 할 또 다른 문제가 있고 거기에서 RegEx를 사용하는 방법을 알 수 없기 때문입니다. 그래서 이것에 대해 약간의 설명을 추가하고 있습니다. 정답은
검색 : (\ w + \. someMethod \ (\))
바꾸기 : ((TypeName) $ 1)
여기:
찾는 중:
-
첫 번째와 마지막 ‘(‘ ‘)’는 정규식의 그룹을 나타냅니다.
-
‘\ w’는 단어를 나타냅니다 (영숫자 + 밑줄).
-
‘+’는 하나 이상 (즉, 하나 이상의 영숫자 + 밑줄)을 나타냅니다.
-
‘.’ 는 모든 문자를 나타내는 특수 문자입니다 (예 :. +는 하나 이상의 문자를 의미 함). 이것은 ‘.’를 묘사하는 특수 문자이기 때문입니다. 이스케이프 문자, 즉 ‘.’를 제공해야합니다.
-
검색되는 그대로 ‘someMethod’가 주어집니다.
-
두 개의 괄호 ‘(‘, ‘)’는 그룹을 묘사하는 데 사용되는 특수 문자이므로 이스케이프 문자와 함께 제공됩니다 (다음 지점에서 그룹에 대해 설명합니다).
교체 :
-
‘ ((TypeName) $ 1) ‘ 이 주어지며 여기서 $ 1은 그룹을 나타냅니다. 검색 필드에서 첫 번째 및 마지막 괄호 ‘(‘, ‘)’로 묶인 모든 문자입니다.
-
또한 바꾸기 상자 찾기에서 ‘정규식’옵션을 선택했는지 확인하십시오.
RegEx에 대한 자세한 내용은 http://regexr.com/ 에서 찾을 수 있습니다 .
답변
적어도 STS (SpringSource Tool Suite) 그룹은 0부터 시작하여 번호가 지정되므로 교체 문자열은
replace: ((TypeName)$0)
답변
Eclipse에서 regxp를 사용하는 방법에 대한 설명과 예제가 필요한 사람을 위해. 다음은 문제를 설명하는 내 예입니다.
이름을 바꾸고 싶습니다
/download.mp4^lecture_id=271
에
/271.mp4
그리고 이것들은 여러 개있을 수 있습니다.
수행 방법은 다음과 같습니다.
그런 다음 찾기 / 바꾸기 버튼을 누릅니다.
답변
