메모장 ++에서 모든 문자열을 각 문자열에 포함 된 숫자로 바꾸는 방법은 무엇입니까?


108

다음 패턴으로 모든 값을 찾으려고합니다.

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

범위 내의 값으로 바꿉니다.

패턴을 찾기 위해 다음 정규식을 사용하고 있습니다.

.*"\d+"

교체는 어떻게하나요?


2
교체 부품은 무엇입니까? 예를 들어 주시겠습니까?
Toto

^. * 값 = "([^"*) "* $이 정규식을 확인 값이 요구되는 값 \ 1 repace.
Nikhil KS

답변:


191

바꿀 메모장 ++에서 Ctrl+ H를 눌러 바꾸기 메뉴를 엽니 다.

그런 다음 "정규식"버튼을 선택하고 교체에서 일치하는 패턴의 일부를 사용하려면 "캡처 그룹"을 사용해야합니다 ( Google에서 자세히 알아보기 ). 예를 들어, 다음 각 줄을 일치시키고 싶다고 가정 해 보겠습니다.

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

.*"\d+"패턴을 사용하고 숫자 만 유지하고 싶습니다. 그런 다음 괄호를 사용하여 일치하는 패턴으로 캡처 그룹을 사용할 수 있습니다 ()그와 같은 : .*"(\d+)". 따라서 이제 교체에서 간단히 작성할 수 있습니다 $1. 여기서 $ 1은 첫 번째 캡처 그룹의 값을 참조하고 각 성공적인 일치에 대한 숫자를 반환합니다. 두 캡처 그룹이 있다면, 예를 들어 (.*)="(\d+)", $1문자열을 반환 value하고$2 숫자를 반환합니다.

따라서 다음을 사용합니다.

찾기: .*"(\d+)"

바꾸다: $1

그것은 당신을 반환합니다

4
403
200
201
116
15

앞서 언급 한 패턴을 일치시키는 더 나은 방법이 많이 있습니다. 예를 들어, 패턴 value="([0-9]+)"이 더 구체적이고이 선들과 만 일치 할 것이기 때문에 더 좋을 것입니다. 캡처 그룹을 사용하지 않고 교체 할 수도 있지만 이것은 약간 더 고급 주제이므로 지금은 그대로 두겠습니다. :)


19
교체를 위해 $1작동하지 않았습니다. 나는 \1대신 사용했고 그것은 효과가 있었다.
Jason Wheeler

12
\1Notepad ++의 모든 버전에서 작동합니다. $1최신 버전에서만 작동합니다.
Cullub 2014 년

나는 이것이 Hex Editor플러그인에서 작동하지 않는다고 생각합니다 . 16 진보기 모드에서 Notepad ++는 Regular Expression검색 / 바꾸기 옵션을 표시하지 않습니다 . 텍스트보기 모드 Regular Expression에서 검색 / 바꾸기 옵션 이 표시 됩니다. 현재 현재 버전 인 Notepad ++ 버전 6.9.2를 사용하고 있습니다.
Kevin Fegan

15

psxls가 좋은 대답을했지만 메모장 ++ 버전이 약간 다르기 때문에 $ (달러 기호) 캡처가 작동하지 않는 것 같습니다.

나는이 메모장 ++ v.5.9.3을 여기에 당신이 당신의 작업을 수행하는 방법은 다음과 같습니다

다음 패턴을 검색합니다. value = \ "([0-9] *) \" 그리고 다음으로 바꿉니다. \ 1 (캡처 그룹에 대해 수행 할 작업)

전의. 대괄호로 둘러싸 기

[\ 1]-> 값 = "[4]"생성


1
\1번호를 유지하고 그 뒤에있는 따옴표를 제거하는 데 도움이되었습니다. 나는 같은 문서에서 7400 줄을 가지고 있었다 tablename.columnname = '12345'. 첫 번째 인용문은 제거하기 쉬웠고 두 번째 인용문은 \1바꾸기 텍스트 상자에서 사용자 를 사용하여 수행 되었습니다. 감사합니다. +1
Ben Fransen 2015-06-03

6

바꾸다 (.*")\d+(")

$1x$2

x"범위 내의 가치"는 어디에 있습니까 ?


0

나는이 메모장 ++ v6.8.8을

찾기 : [([a-zA-Z])]

바꾸기 : [\ '\ 1 \']

다음을 생성합니다 : $ array [XYZ] => $ array [ 'XYZ']


-3

찾기: value="([\d]+|[\d])"

바꾸다: \1

정말 너를 돌려 줄거야

4
403
200
201
116
15

js :

a='value="4"\nvalue="403"\nvalue="200"\nvalue="201"\nvalue="116"\nvalue="15"';
a = a.replace(/value="([\d]+|[\d])"/g, '$1');
console.log(a);

3
이 JavaScript 솔루션은 Notepad ++로 태그가 지정된 질문과 어떤 관련이 있습니까?
Jason Aller

잘못된 응답 1과 2는 Notepad ++로 태그가 지정된 질문과 어떤 관련이 있습니까?
user3178007 2014-06-07

내가 여기서 질문 한 이유는 무엇입니까? 질문을 만들 수 없기 때문입니다. 평판 점수가 충분하지 않기 때문입니다.
user3178007

1
당신이 주장하는 것과 같은 질문에 대한 평판 요건은 없습니다. 당신 제한 될 수 없었을 것입니다. 다시 시도하십시오 : stackoverflow.com/questions/ask
BoltClock

질문이 제기되었습니다. stackoverflow.com/questions/24112018/… 하지만 검색 할 단어가 제한되어 있습니다. 한계입니다!
user3178007
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.