특정 패턴을 다른 패턴으로 대체하려고하는 경우가 있습니다. 내 문제는 그 패턴의 마지막 발생 만 대체해야한다는 것입니다. 나는이 질문을 발견했습니다regex를 사용하여 마지막 패턴 만 JS로 바꾸기
How to replace last occurrence of characters in a string using javascript
을하지만 내 요구에 적합하지 않습니다. 배경으로, 나는 CSS 규칙을 대체하기 위해 노력하고 있다고하지만, 현재 예를 들어,이 텍스트를 볼 수 있습니다 :
abcd:bka:
bbb:aad:
accx:aaa:
bbb:a0d:
cczc:aaa:
가 난 단지 BBB의 값을 대체 할 말을 할 수 있습니다. 나의 현재 규칙은
text.replace(/(\s*bbb:)([^:]+)/,"$1aaa")
될 것입니다하지만 난 그게 마지막을 대체 할 동안 만 첫 경기를 교체합니다. 현재 패턴은 실제로이 패턴보다 복잡하지만 의사 문제로도 충분하다고 생각합니다.
나는이 답변을 좋아한다 : http://stackoverflow.com/questions/843049/how-to-replace-last-occurence-of-a-word-in-javascript 서문 (. *)은 많이 먹는다. 가능하면 일치하기 전에. –
@PeterEhrlich : 대신에 [[\ s \ S] *'를 써야한다. (도트는 개행과 일치하지 않는다.) 나는 일반적으로'. *'와 같은 불특정 한 정규 표현식을 사용하는 것을 선호하지만, 그렇다. 일하게 될거야. 성능이 내 것보다 좋든 나쁘 든간에 실제로 사용되는 텍스트에 따라 다릅니다. '. *'원인으로 인해 큰 텍스트 때문에 악화 될 것으로 생각됩니다. –