나는 대체하기 위해 노력하고있어 **SomeStr**
에 <b>SomeStr</b>
. 나는 내가 원하는 것을 거의 달성했습니다. 아래 코드에서 내가 가진 주요 문제는
**def*****yo**
3 개 조각으로 **def**
, *
, **yo**
내가 생각할 때 그것은해야한다 **def**
, ***yo**
그것이로 변환 할 수 있도록 <b>def</b><b>*yo</b>
. 하나의 별표가 경기를 끝내서는 안되지만 그게 벌어지는 일입니다.
const pattern = /(\*\*)([^\*\*]*)(\*\*)/g;
let str = `* abc **
* **def****yo**
*`
const replacer = function(match, first, inner, last){
return "<b>"+inner+"</b>"
}
str = str.replace(pattern, replacer)
console.log(str)
나는 내가 무엇을 가지고 놀지 알았 으면 좋겠다.
당신은 사용할 수 있습니다
var str = " **def*****yo**";
var regex = /\*\*([^*]*(?:\*(?!\*)[^*]*)*)\*\*/g;
var replacement = '<b>$1</b>';
console.log(str.replace(regex, replacement))
regex 데모를 참조하십시오 .
줄 바꿈을 통해 일치하지 않고 줄 내에서만 일치해야하는 경우 부정 문자 클래스에 줄 바꿈을 추가하고
var regex = /\*\*([^*\n]*(?:\*(?!\*)[^*\n]*)*)\*\*/g;
패턴 세부 정보
\*\*
- **
부분 문자열([^*]*(?:\*(?!\*)[^*]*)*)
-그룹 1 : 별표 ( [^*]*
)를 제외한 0 개 이상의 문자 다음에 0 개 이상의 a 시퀀스가 *
뒤 따르고 다른 *
문자가 뒤 따르고 별표가 아닌 0 개 이상의 문자가 이어짐\*\*
- **
부분 문자열$1
대체 패턴 그룹 1의 값을 의미, 액세스 그룹 값으로 교체 인수에 callables를 사용할 필요가 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다