먼저, 이 글을 쓰기 전에 정규 표현식을 가지고 2시간 이상을 보냈다는 점을 말씀드리고 싶습니다. 슬프다~슬프다~슬프다~
일반적인 생각에 따라 몇 가지 다른 삽입 방법을 살펴보겠습니다. 문자열을 사용합니다.
var str = "eattd gebcat gedat jadu geat beu";
는 예시입니다.
1. "ge"로 시작하면 결과는 "gebcat, gedat, geat"이어야 합니다. 단어가 "ge"로 시작하므로 나중에 사용할 수 있도록 새 배열을 넣을 수 있습니다.
var exp1 = /bgew /ig
var matchStr = exp1.exec(str);
while (matchedStr != null && matchStr.index < str.length) {
if (matchedStr[0] != null ) {
inv.innerHTML = "
결과는 다음과 같습니다: " matchStr[0]
//newStr = newStr.replace(matchedStr[0])
wordsArr.push(matchedStr[ 0]) ;
}
matchedStr = exp1.exec(str);
}
2. "at"로 끝나는 단어의 경우 결과는 "gebcat"입니다. "게다트", "게트". 마찬가지로 배열을 넣을 수도 있습니다.
var exp1 = /w(atb)/ ig;
3. "ge"로 시작하지 않는 단어의 경우 이를 저장할 또 다른 배열이 필요합니다.
var exp1 = /b(?!ge )w / ig
varwordsArr = new Array();
var matchStr = exp1.exec(str)
while(matchedStr != null && matchStr.index < str.length) ) {
if (matchedStr[0] != null) {
inv.innerHTML = "
결과는 다음과 같습니다: " matchStr[0]
newStr = newStr.replace(matchedStr[0) ]);
wordsArr.push(matchedStr[0]);
matchedStr = exp1.exec(str)
}
//wordsArr = newStr.split( " ") ;
for (var i = 0; i if (wordsArr[i] == "undefine") {
wordsArr.splice(i ,1) ;
} else
i
}
4. "at"으로 끝나지 않는 단어, 그런데 문제가 발생합니다. Javascript의 Regex는 상대적으로 약하고 역방향 탐색 부정을 지원하지 않으므로 작성할 수 없습니다.
var exp1 = /w (?
및
var exp1 = /w (?!atb)/ig
오른쪽
의 의미에서 단어의 끝은 "at"이 될 수 없습니다. 즉 불가능합니다. bw는 단어 경계를 찾는 것입니다. 다른 각도에서 작성해서 at로 끝나는 단어를 찾아 원래 문자열에서 해당 단어를 삭제합니다. 그런 다음 새 배열을 넣으십시오.
function RegularExpTest() {
var inv = document .getElementById("RegexTest");
var str = "eattd gedbcat gedat jadu geat beu";
var newStr =
var exp1 = /w atb/ig; wordArr = new Array();
var matchStr = exp1.exec(str);
while (matchedStr != null && matchStr.index < str.length) {
if (matchedStr[ 0] ! = null) {
inv.innerHTML = "
결과는 다음과 같습니다: " matchStr[0]
newStr = newStr.replace(matchedStr[0])
matchedStr = exp1.exec(str);
}
wordsArr = newStr.split(" ");
for (var i = 0; i if (wordsArr[i] == "정의되지 않음") {
wordsArr.splice(i,1)
} else
i
}
inv .innerHTML = "
결과는 다음과 같습니다: "wordArr
}
완료!
생각하면 얻을 것이고, 생각하지 않으면 얻지 못할 것이다.