본질적으로 쉼표로 구분된 필드 이름인 매우 긴 문자열이 있다고 가정해 보겠습니다.
내 문제는 별도의 필드로 나누려고 할 때 "{0,0}" 또는 "{45,-45}" 또는 "{90,90}"과 같은 일부 이름에 쉼표가 있다는 것입니다.
이 긴 문자열을 필드로 분리하려면 해당 쉼표를 다른 것으로 바꿔야 합니다.
"Normal_0_{0,0}, Normal_90_{45,-45}" 문자열의 작은 부분이므로 중괄호 안에 있는 쉼표만 교체하면 됩니다.
그래서 저는 이렇게 썼습니다.
matches = Regex (longLine, ".*(\{\d{1,2})(,)(-?\d{1,2}\}).*", "\1|\3");문자열 안의 모든 쉼표를 대체해야 합니다. 그러나 실제로는 문자열의 첫 번째 쉼표만 대체합니다.
왜요? 그리고 어떻게 모든 경기를 교체할 수 있습니까?
부수적인 질문: 이 코드에서
Word(1, "Normal_0_{0,0}, Normal_90_{45,-45}" , ", ")문자열을 "," 또는 " "로 분할합니다. 문자 조합, 특히 "," - 쉼표 다음에 공백으로 분할하려면 어떻게 해야 합니까?
평소와 같이 게시하고 몇 분 후에 문서에서 답변을 발견했습니다.
내가 필요한 것은 GLOBALREPLACE뿐이었습니다.
matches = Regex (longLine, "(\{\d{1,2})(,)(-?\d{1,2}\})", "\1|\3", GLOBALREPLACE);귀하의 질문에 대해: Word(s)를 사용하여 많은 문자로 쉽게 분할할 수 없습니다. Regex Match를 사용하거나 먼저 모든 ","(대체, 정규식)를 일부 특수 문자로 바꾼 다음 Word(s)를 사용하여 분할할 수 있습니다.