정규식에서 점(.), 밑줄(_), 대시(-)를 감지하는 방법 [닫기]

정규식에서 점(.), 밑줄(_), 대시(-)를 감지하는 방법 [닫기]

IP 주소 또는 IP 호스트 정보가 포함된 폴더와 관련된 정보를 처리해야 합니다.

실제 URL이든, 폴더 이름이든, 데이터 파일이든 IP 주소를 식별(일치)할 수 있는 패턴이 필요합니다. 예를 들어

127.0.0.10
127-0-0-10
127_0_0_10

모두 일치해야 합니다. 이상. Bash에서 이를 수행할 수 있는 토크나이저 정규식이 있습니까?

답변1

다음 정규식은 필요한 작업을 수행하는 것 같습니다.

\b(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[\-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[\-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\b

$ cat test.txt
127.0.0.10
127-0-0-10
127_0_0_10
256_5_10_1
10-10-100-1
192.168.100.1
$ grep -E '\b(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\b' test.txt
127.0.0.10
127-0-0-10
127_0_0_10
10-10-100-1
192.168.100.1

바라보다https://www.regular-expressions.info/ip.html정규식에 대한 설명. 나는 단순히 , 또는 와 일치하도록 \.s를 수정했습니다 .[-._]-._

관련 정보