정규 표현 식 의 괄호 역할

1924 단어 정칙괄호


   괄호 는 정규 표현 식 에서 매우 중요 한 역할 을 한다.
   셸 에 있 는 괄호 와 정규 에 있 는 괄호 는 차이 가 있 습 니 다. 셸 에 있 는 괄호 는 프로 세 스 가 바 뀌 는 것 을 의미 합 니 다. 예 를 들 어 셸 에 있 는 괄호 는 프로 세 스 가 바 뀌 는 것 을 의미 합 니 다.  (var = 1) 은 하위 셸 (하위 프로 세 스) 에서 변 수 를 만 들 고 값 을 1 로 부여 한 다음 현재 셸 (부모 프로 세 스) 에 되 돌려 줍 니 다. echo $var 를 실행 하면 빈 값 을 얻 을 수 있 습 니 다. 즉, 하위 셸 의 변 수 는 하위 셸 이 끝 날 때 사라 지고 현재 셸 에 나타 나 지 않 습 니 다.
   다음은 정규 표현 식 에서 괄호 의 역할 입 니 다.
   1. 가장 많이 사용 되 는 것 은 그룹 을 나 누 는 것 입 니 다. 예 를 들 어 우 리 는 123 - 45678 과 같은 숫자 를 일치 시 키 려 면 grep - E '([0 - 9] {3}) - ([0 - 9] {5})' 와 같은 방식 으로 나 눌 수 있 습 니 다. 그 중에서 괄호 는 그룹 을 나 누 는 역할 을 합 니 다. 123 - 45678 을 '-' 로 구분자 로 나 누 어 두 그룹 으로 나 누 어 표시 합 니 다.
      grep 에서 사용 하 는 - E 옵션 에 대해 정규 표현 식 은 BRE 와 ERE 두 가지 방식 이 있 습 니 다. 이 두 가지 방식 의 차 이 는 원 문자 의 차이 에 있 습 니 다. BRE 에 서 는 ^ $만 인정 합 니 다. [] * 이 6 개의 원 문자 도 있 습 니 다. 즉, 괄호 도 없습니다. 따라서 이 예 에서 - E 옵션 이 없 으 면 \ ([0 - 9] {3} \) 와 같은 표현 이 필요 합 니 다. ERE 에 서 는 () {}? + | 을 추가 합 니 다.이 몇 개의 메타 문 자 는 ERE 를 사용 할 때 - E 옵션 을 추가 해 야 합 니 다.
  2. 배합 | 사용 은 선택 을 표시 할 수 있 습 니 다. 예 를 들 어 b (o | u) y 는 boy 또는 buy 를 표시 할 수 있 습 니 다. 이 성질 은 오류 가 발생 하기 쉬 운 부분 이 있 습 니 다. 예 를 들 어 일치 (a | ab) 할 때 a 만 일치 할 수 있 고 ab 와 일치 하지 않 습 니 다. (ab | a) 를 사용 해 야 ab 와 일치 할 수 있 습 니 다. 이 유 는 분기 일치 기호 "|" 에서 나 옵 니 다. 왼쪽 테스트 가 조건 을 만족 시 킬 때 오른쪽 표현 식 과 일치 하지 않 습 니 다.
  3. 괄호 를 사용 하여 결과 에 맞 는 역방향 인용 을 한다.  예 를 들 어 echo "123456 - abcded" | sed 's / \ ([0 - 9] * \) - \ ([a - z] * \) / \ 2 /' 는 여기에 두 개의 괄호 가 있 습 니 다. 첫 번 째 조 는 [0 - 9] * 가 일치 하 는 123456 이 고 두 번 째 조 는 [a - z] * 가 일치 하 는 abcded 입 니 다. 따라서 \ 2 는 두 번 째 조 가 abcded 와 일치 하 는 역방향 인용 을 의미 합 니 다. 명령 의 마지막 출력 결과 도 abcded 입 니 다. 정규 표현 식 에서 역방향 인용 은 최대 9 조, 즉 \ 1 ~ \ 9 만 사용 할 수 있 습 니 다.
 
                                                                                       최근 에 정칙 을 배우 기 시 작 했 기 때문에 경험 이 많 지 않 았 기 때문에 나중에 만난 상황 을 다시 보충 하 겠 습 니 다.:)

좋은 웹페이지 즐겨찾기