![정규식에서 점(.), 밑줄(_), 대시(-)를 감지하는 방법 [닫기]](https://linux55.com/image/144957/%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%97%90%EC%84%9C%20%EC%A0%90(.)%2C%20%EB%B0%91%EC%A4%84(_)%2C%20%EB%8C%80%EC%8B%9C(-)%EB%A5%BC%20%EA%B0%90%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
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를 수정했습니다 .[-._]
-
.
_