반응형
문자열에서 마지막 점과 일치하는 정규식
여러 개의 점을 포함 할 수 있고 어떤 확장자로도 끝날 수있는 파일 이름이 있습니다.
tro.lo.lo.lo.lo.lo.png
정규식을 사용하여 점의 마지막 발생을 다른 문자열과 같은 다른 문자열로 @2x
바꾼 다음 점을 다시 (망막 이미지 파일 이름과 매우 유사 함) 즉 :
tro.lo.png -> tro.lo@2x.png
지금까지 내가 가지고있는 것이 있지만 일치하는 것이 없습니다 ...
str = "http://example.com/image.png";
str.replace(/.([^.]*)$/, " @2x.");
어떤 제안?
이를 위해 정규식이 필요하지 않습니다. String.lastIndexOf
할 것입니다.
var str = 'tro.lo.lo.lo.lo.lo.zip';
var i = str.lastIndexOf('.');
if (i != -1) {
str = str.substr(0, i) + "@2x" + str.substr(i);
}
업데이트 : 재미를위한 정규식 솔루션 :
str = str.replace(/\.(?=[^.]*$)/, "@2x.");
리터럴 점이 일치하고 (주장 (?=)
입니다 긍정적 예측 문자열의 끝에 다른 문자까지이 점이 없다는 것을). 제거하려는 경우가 아니라면 교체에는 일치하는 점 하나가 포함되어야합니다.
그냥 사용하는 특별한 교체 패턴 $1
대체 문자열을 :
console.log("tro.lo.lo.lo.lo.lo.png".replace(/\.([^.]+)$/, "@2x.$1"));
// "tro.lo.lo.lo.lo.lo@2x.png"
다음 식을 사용할 수 있습니다 \.([^.]*?)
.
str.replace(/\.([^.]*?)$/, "@2x.$1");
$1
부분을 결과 문자열로 다시 복사 하려면 하위 그룹 을 참조해야 합니다.
작업 데모 http://jsfiddle.net/AbDyh/1/
암호
var str = 'tro.lo.lo.lo.lo.lo.zip',
replacement = '@2x.';
str = str.replace(/.([^.]*)$/, replacement + '$1');
$('.test').html(str);
alert(str);
문자열의 시작부터 마지막 문자까지 (포함) 모든 문자를 일치 시키려면 다음을 사용하십시오.
^.*\.(?=[^.]*$) To match the last occurrence of the "." character
^.*_(?=[^.]*$) To match the last occurrence of the "_" character
\.
점을 일치시키는 데 사용 합니다. 문자 .
는 모든 문자 와 일치 합니다 .
따라서 str.replace(/\.([^\.]*)$/, ' @2x.')
.
간단하게 이렇게 할 수 있습니다.
> "tro.lo.lo.lo.lo.lo.zip".replace(/^(.*)\./, "$1@2x");
'tro.lo.lo.lo.lo.lo@2xzip'
단순히 문자열을 분할하고 마지막 항목에서 두 번째 항목에 해당 접미사를 추가하지 않는 이유는 무엇입니까?
var arr = 'tro.lo.lo.lo.lo.lo.zip'.split('.');
arr[arr.length-2] += '@2x';
var newString = arr.join('.');
'tro.lo.lo.lo.lo.lo.png'.replace(/([^\.]+).+(\.[^.]+)/, "$1.@x2$2")
반응형
'programing' 카테고리의 다른 글
Chrome이 빈 필드에 "Please Fill Out this Field"툴팁을 표시하는 이유는 무엇입니까? (0) | 2021.01.17 |
---|---|
'onclick'이벤트를 트리거하는 요소의 ID를 이벤트 처리 함수에 전달하는 방법 (0) | 2021.01.17 |
rake db : create가 postgresql에서 "데이터베이스가 존재하지 않음"오류를 발생시킵니다. (0) | 2021.01.17 |
NLTK 및 불용어 실패 #lookuperror (0) | 2021.01.17 |
Angular material $ mdToast의 메시지 유형에 따라 Toast의 색상을 어떻게 변경할 수 있습니까? (0) | 2021.01.17 |