을 구문 분석 내가 정규식을 찾고 있어요 . 이 정규식을 완료하는 방법이 있습니까?정규 표현식은
Q
정규 표현식은
0
A
답변
1
이 작업을 올바르게 수행하는 것은 일반적으로 정규 표현식의 기능을 뛰어 넘습니다.
\{([^}]+)}(.*?)\{/\1}
설명 :
\{ # a literal {
( # capture the tag name
[^}]+) # everything until the end of the tag (you already had this)
} # a literal }
( # capture the tag's value
.*?) # any characters, but as few as possible to complete the match
# note that the ? makes the repetition ungreedy, which is important if
# you have the same tag twice or more in a string
\{ # a literal {
\1 # use the tag's name again (capture no. 1)
} # a literal }
당신이 그 태그가 중첩되지 않을 것이라는 점을 보장 할 수있는 귀하의 의견 태그를 의미하지 않습니다 중괄호를 포함하지 않을 경우, 다음이 정규식 매칭을 할 수
그래서 이것은 역 참조 \1
을 사용하여 닫는 태그가 시작 태그와 같은 단어를 포함하고 있는지 확인합니다. 그런 다음 캡처의 태그 이름은 1
이고 캡처 태그 값/내용은 2
입니다. 여기에서 원하는대로 (예 : 값을 다시 입력) 원하는 작업을 수행 할 수 있습니다.
태그를 여러 줄에 걸쳐 사용하려면 SINGLELINE
또는 DOTALL
옵션을 사용해야합니다.
정규식은 패턴에만 일치합니다. 문자열을 변경하지 않습니다. 어떤 언어를 사용 하시겠습니까? –
Objective-C를 사용하고 있습니다. – seb