{all-content}^{^}을 \ hat {all-content}으로 바꿉니다. 그리고 문자열과 예상 출력은맞춤 브래킷을 특정 콘텐츠로 바꾸기
str = str.replace(/\{(.*?)\}\^\{\^\}/g, "\\hat{$1}")
str = '{A}^{^} this is sample content {{A}_{22}}^{^} with more complex structure {A}_{X-1} {B+2}^{^} another content with multi level content {A+{B}^{^}}^{^}';
str = str.replace(/\{(.*?)\}\^\{\^\}/g, "\\hat{$1}");
console.log(str)
.. 여기
|---------------------|-------------------|-------------------|
| String Input | Expected Result | What I get |
|---------------------|-------------------|-------------------|
| {A}^{^} | \hat{A} | \hat{A} |
|---------------------|-------------------|-------------------|
| {{A}_{22}}^{^} | \hat{{A}_{22}} | \hat{{A}_{22}} |
|---------------------|-------------------|-------------------|
| {A}_{X-1} {B+2}^{^} |{A}_{X-1} \hat{B+2}|\hat{A}_{X-1} {B+2}|
|---------------------|-------------------|-------------------|
| {A+{B}^{^}}^{^} | \hat{A+\hat{B}} | \hat{A+{B}}^{^} |
|---------------------|-------------------|-------------------|
... 등이 정규식해야 업데이트 : {...} - -> 문자, 특수 문자 또는 유니 코드 기호가 될 수 있습니다. 중첩 된 중괄호의 둘 이상의 레벨을 포함 할 수도 있습니다.
그래서 정규 표현식에서 사용할 수 있습니까? 없는 경우는 각각의 일치 ^{^}
및 {
같은 수를 포함하지만, 대부분의 경우에 작동합니다 가정하기 때문에, 다른 대안 ..
** ** words **에서, '{...}'의 내용에 대한 규칙은 무엇입니까? –
{...} 형식은 [tex] (https://en.wikipedia.org/wiki/TeX) 형식입니다 ... 일반적으로 특수 문자 및 유니 코드 기호를 포함한 모든 문자 – mimind
네 번째 예제에서는 중첩 구조체에서 JavaScript의 정규 표현식은 독자적으로이를 수행 할 수 없습니다. 더 복잡한 구문 분석이 필요합니다. –