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

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

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

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

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

.*"\d+"

교체는 어떻게하나요?



답변

바꿀 메모장 ++에서 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]+)"이 더 구체적이고이 선들과 만 일치 할 것이기 때문에 더 좋을 것입니다. 캡처 그룹을 사용하지 않고 교체 할 수도 있지만 이것은 약간 더 고급 주제이므로 지금은 그대로 두겠습니다. 🙂


답변

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

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

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

전의. 대괄호로 둘러싸 기

[\ 1]-> 값 = “[4]”생성


답변

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

$1x$2

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


답변

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

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

바꾸기 : [\ ‘\ 1 \’]

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


답변

찾기: 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);


답변