지난 한 달 동안 저는 iOS와 macOS의 Shortcuts와 Automator 앱을 각각 다루었습니다. 둘 다 Apple 에코시스템의 자동화에 있어 강자이며, 올 가을 macOS Monterey를 시작으로 Shortcuts는 모든 Apple 기기의 자동화 앱이 될 것입니다. 이것이 바로 이 기사에서 바로 가기 앱과 함께 정규식 사용이라는 매우 강력한 주제를 논의하는 데 사용하고 싶은 이유입니다.
컴퓨터 과학과 프로그래밍에 대한 배경 지식이 있지만 정규 표현식을 접한 적이 없습니다. 이름이 나를 두렵게 했을 수도 있고, 내가 본 코드 중 가장 가독성이 떨어지는 코드였을 수도 있습니다.
어떤 경우이든 지난 몇 달 동안 Shortcuts 앱을 다룬 후 정규식을 더 자세히 살펴보기로 결정했습니다. 그리고 내가 발견한 것은 내가 Shortcuts와 Automator를 사용하면서 겪었던 많은 제한 사항을 정규식으로 극복할 수 있다는 것입니다.
즉, 이 앱들은 기능이 부족해서가 아니라 제가 교육이 부족했던 것입니다.
그래서 오늘의 포스트에서 여러분과 저는 정규식의 모든 것을 함께 배울 것입니다. 그렇게 하면 이러한 각 앱을 최대한 활용할 수 있습니다.
정규식의 기본 사항(정규식 정의부터 시작), 바로 가기 앱에서 정규식으로 수행할 수 있는 작업, 일부 웹사이트 및 정규식을 직접 배우고 싶지 않다면 사용할 수 있는 리소스를 살펴보고 정규식의 핵심 개념과 역학에 대해 알아보겠습니다. 언어.
좋아, 시작하자!
내용물
-
정규식(예: regex)이란 무엇입니까?
- 정규식으로 할 수 있는 일
- 바로 가기 앱에서 정규식을 어떻게 사용할 수 있습니까?
- regex101.com을 사용하여 정규식 테스트
- Shortcuts 앱에서 정규식을 사용하는 방법을 배우고 싶지 않다면 이것을 읽으십시오
-
초보자를 위한 정규식: 바로 가기와 함께 정규식 사용 시작
- 정규식 풍미는 무엇입니까?
- 바로 가기를 사용하여 정규식 학습을 시작하는 데 도움이 되는 웹 사이트 및 참조
- 바로 가기와 함께 정규식을 사용하여 기본 텍스트 검색을 수행하는 방법
- 정규식 검색에 변수 구성 요소 추가
- 범위는 검색 범위를 넓힐 수 있습니다.
- 바로 가기를 사용하여 정규식 검색에서 단어와 문자를 제외하는 방법
- 와일드카드는 더 많은 검색 옵션을 제공할 수 있습니다.
- 수량자를 사용하여 찾고 있는 텍스트 길이 지정
- 몇 가지 더 알고 싶은 수량자가 있습니다.
- 텍스트 문자열의 시작과 끝에서 문자 검색
- 바로 가기가 있는 정규식의 그룹화 기능을 사용하여 텍스트 문자열 저장
-
이제 뭐?
- 이것을 어떻게 분해하시겠습니까?
-
바로 가기와 함께 정규식을 사용하여 자동화를 한 단계 끌어 올리십시오.
- 관련 게시물:
정규식(예: regex)이란 무엇입니까?
정규식 또는 "regex"는 더 큰 텍스트 내부의 텍스트를 검색하는 데 사용할 수 있는 약간의 코드입니다.
모르는 경우를 대비하여 프로그래밍에서 다른 텍스트 조각 내의 텍스트 조각을 "문자열"이라고 합니다. 예를 들어, '녹색'이라는 단어는 "오늘 녹색 바지를 입었습니다."라는 텍스트의 문자열입니다.
달리 말하면 정규식은 더 큰 텍스트 본문에서 텍스트 문자열을 찾는 방법입니다. 그리고 정규식은 코드로 작성되었기 때문에 꽤 복잡한 작업을 수행하는 데 사용할 수 있습니다.
예를 들어 "email"이라는 단어를 검색하려는 경우 이메일을 검색하는 정규식 코드를 쉽게 작성할 수 있습니다.
단락 안에 있는 이메일을 찾고 싶은데 그 이메일이 정확히 무엇인지 모르는 경우 이메일과 같은 형식의 텍스트 문자열을 검색해야 합니다. 즉, "[이메일 보호됨]" 형식입니다.
이제 단락에서 하나의 이메일을 찾고 싶을 뿐만 아니라 모든 이메일. 다른 곳에 빠르게 복사하거나 새 형식으로 업데이트하거나 모두 "[이메일 보호됨]“.
정규식에 대한 숙련도와 경험이 늘어남에 따라 이러한 모든 작업과 그 이상의 작업을 수행할 수 있습니다.
![](/f/d24774f5d6b9d0aef689b2251f06b34e.jpg)
정규식으로 할 수 있는 일
알겠습니다. 제가 방금 전달한 이메일의 예는 그다지 실용적이지 않을 수 있습니다. 걱정하지 마세요. 바로 가기 앱과 함께 정규식을 사용하여 수행할 수 있는 작업의 한계와는 거리가 멉니다.
일반적으로 regex가 할 수 있는 모든 것은 다음 네 가지 범주 중 하나에 속합니다.
- 더 큰 텍스트 조각에서 텍스트 문자열을 찾습니다(예: 텍스트 페이지에서 단어/문자열/문자열 유형 검색).
- 텍스트 문자열이 원하는 형식과 일치하는지 확인합니다(즉, 텍스트 문자열의 대문자/순서/구두점이 올바른지 확인).
- 텍스트의 특정 영역에서 텍스트를 바꾸거나 삽입합니다.
- 지정된 지점에서 텍스트 문자열을 분할합니다(예: 쉼표가 있을 때마다 텍스트 조각 분할).
이러한 종류의 기능 각각과 상호 작용하는 데 사용할 수 있는 깊이 수준과 이 기능을 결합하는 방법은 정규식을 텍스트 구문 분석 및 조작을 위한 믿을 수 없을 정도로 강력한 도구로 만듭니다.
바로 가기 앱에서 정규식을 어떻게 사용할 수 있습니까?
자, 이제 정규식이 무엇에 사용되는지에 대한 기본 아이디어를 얻었기를 바랍니다. 텍스트가 무엇인지 정확히 모르는 경우에도 텍스트를 검색하는 데 사용할 수 있는 코드 유형입니다.
이것이 바로 가기에서 어떻게 도움이 됩니까? 바로 가기에 스크립팅을 추가하는 것과 유사하게 기본 자동화(현관문이 열리면 문자주세요) 고급 옵션(직장에서 Zoom 회의 이메일을 받을 때마다 회의 일정 이벤트를 자동으로 생성합니다.).
바로 가기와 함께 정규식을 사용하여 입력이 올바른지 확인할 수 있습니다. 예를 들어 URL에서만 작동하는 바로 가기를 만드는 경우 바로 가기 시작 부분에 정규식을 사용하여 사용자가 URL에서 자동화를 실행하고 있는지 확인할 수 있습니다.
정규식을 스크립팅과 결합하여 강력한 바로 가기를 만들 수 있습니다. 예를 들어, 이 바로가기 정규식과 스크립팅을 사용하여 바코드를 즐겨찾는 상점의 URL로 바꿉니다.
Mac에서 Shortcuts 앱을 사용할 때(2021년 가을 출시 예정), 정규식을 사용하여 텍스트에 일괄 작업을 수행할 수 있습니다. 예를 들어, 선택한 텍스트의 모든 이메일을 정렬된 목록으로 복사할 수 있습니다. 또는 개인 정보를 보호하기 위해 문서의 모든 이름을 "*" 문자로 바꿀 수 있습니다.
한 앱에서 텍스트 본문을 복사하여 다른 앱의 기본 설정에 맞게 다시 포맷한 다음 다른 앱에 붙여넣을 수도 있습니다.
즉, regex는 Shortcuts 앱으로 텍스트 처리를 완전히 제어할 수 있습니다. 처음에는 별로 도움이 되지 않을 수도 있지만, 이제 이 기능이 있다는 것을 알았으니 이 기능으로 얼마나 많은 바로가기를 개선할 수 있는지 알게 될 것입니다. 또한 정규식 없이는 많은 바로 가기가 가능하지 않다는 것도 알 수 있습니다.
regex101.com을 사용하여 정규식 테스트
Shortcuts와 함께 regex를 사용하기 시작하면 좌절감을 느끼게 될 것입니다.
정규식 코드를 테스트하는 것은 정말 어렵습니다. 그리고 이것은 정규식에만 해당되는 것이 아닙니다. Shortcuts 앱으로 무엇이든 테스트하는 것은 일종의 고통입니다. 그렇게 하는 유일한 방법은 바로 가기를 실행하는 것입니다. 이 방법은 내장 바로 가기 기능을 테스트할 때 나쁘지 않습니다.
그러나 테스트 코드의 경우 이것은 라인별 검사를 허용하지 않으며 많은 피드백을 제공하지 않습니다.
이를 위해 regex101.com을 사용하는 것이 좋습니다. 정규식 코드를 실시간으로 입력할 수 있는 사이트입니다. 동일한 웹 페이지의 텍스트 편집기에 텍스트를 입력할 수도 있습니다. 각각을 입력하면 정규식이 작동하는지, 작동하는지 또는 작동하지 않는지 확인하고 찾은 일치 항목에 대한 정보를 얻을 수 있습니다.
![](/f/f30206806290a07903bf6ae46c9584c4.png)
regex101.com은 Shortcuts에서 지원하는 것과는 다른 종류의 정규식을 사용하고 있지만(자세한 내용은 잠시 후에 설명), 너무 많은 문제가 발생하지 않을 만큼 충분히 가깝습니다.
이 도구를 사용하면 먼저 정규식을 작성한 다음 의도한 대로 작동하면 바로 가기 앱에 복사할 수 있기 때문에 매우 좋습니다.
Shortcuts 앱에서 정규식을 사용하는 방법을 배우고 싶지 않다면 이것을 읽으십시오
모든 사람이 바로 가기와 함께 정규식을 사용하는 방법을 배우고 싶어하는 것은 아닙니다. 그것은 기술이며, 그것은 시간과 연습이 필요하다는 것을 의미합니다. Shortcuts 앱의 나머지 드래그 앤 드롭 기능만큼 간단하지는 않습니다.
걱정 마! 정규식을 배우는 데 시간을 들이는 사람만큼 Shortcuts 앱에서 많은 것을 얻을 수는 없지만 여전히 사용할 수 있는 옵션이 있습니다. 즉, 사람들이 바로 가기 앱에 복사하여 붙여넣을 수 있는 정규식 코드 바이트 목록을 만든 사이트와 페이지가 온라인에 있습니다.
다음은 정규식을 배우고 싶지 않은 경우 확인할 수 있는 몇 가지 링크입니다.
- https://www.shortcutfoo.com/app/dojos/regex/cheatsheet
- https://www.reddit.com/r/shortcuts/comments/9zo24n/regex_cookbook_for_shortcuts_reusable_regex_to/
- https://www.reddit.com/r/shortcuts/comments/b5labq/match_text_examples_for_the_beginner_a_regex/
- http://www.rexegg.com/regex-cookbook.html
해당 링크를 읽으면 만들고 싶은 바로 가기에 대한 일반적인 정규식 솔루션을 찾을 수 있습니다. 보고 있는 내용을 파악하는 데 약간의 시간이 걸리므로 교육이 필요 없는 옵션이 아닙니다. 그러나 정규식에 넣을 시간이 없는 사람에게는 훨씬 간단하고 이상적인 솔루션입니다.
그렇긴 하지만, 특히 쉘 코드나 초심자 프로그래밍에 약간의 경험이 있는 경우 정규 표현식을 배우는 것이 그리 어렵지 않다는 것을 인정해야 합니다. Regex는 처음에는 횡설수설한 것처럼 들렸지만 기사를 읽고 regex101.com을 사용하여 한 시간 후에 바로 가기에 대한 정규식 작성을 시작할 수 있었습니다.
그것은 단지 친숙한 것입니다. 충분히 오래 보고 나면 더 이상 이상해 보이지 않을 것입니다. 따라서 시간이 있고 겁이 난다면 그러지 마십시오!
초보자를 위한 정규식: 바로 가기와 함께 정규식 사용 시작
자, 서문으로 충분합니다! regex가 무엇인지, 무엇을 할 수 있는지, 왜 배워야 하는지, 배우고 싶은지 결정할 수 있는 충분한 정보가 있어야 합니다. 이제 우리는 본론으로 들어갈 것입니다.
아래에 많은 내용이 있지만 걱정하지 마십시오! 이 기사는 더 많은 학습 가이드가 될 것입니다. 정규 표현식이 사용하는 메커니즘에 대한 아이디어를 얻을 수 있도록 각 섹션을 훑어보는 것이 좋습니다. 이것은 또한 정규식이 무엇인지 여전히 혼란스럽다면 머리를 감싸는 데 도움이 될 것입니다.
훑어본 후에는 regex101.com을 열고 아래 각 섹션의 각 도구를 사용하는 것이 좋습니다. 그러면 개념이 실제로 어떻게 보이는지 확인하고 기억력을 향상시키는 데 도움이 됩니다. 그렇게 한 후에는 이 기사를 참조 지점으로 취급할 수 있습니다. 정규식의 일부를 잊어버렸을 때 다시 돌아올 수 있는 것입니다.
확인 가자!
정규식 풍미는 무엇입니까?
먼저 정규식 풍미를 살펴보겠습니다. 걱정하지 마십시오. 이것은 바로 가기를 사용한 정규식의 일상적인 사용에 영향을 미치지 않습니다. 시작하기 전에 알아야 할 사항입니다.
"flavors"로 알려진 다양한 버전의 정규식이 있습니다. 이러한 다른 버전은 여전히 매우 유사합니다. 한 가지 맛을 읽고 쓰는 법을 배울 수 있다면 그 중 아무 것도 읽을 수 있어야 합니다. 정규식 코드의 형식을 지정하는 방법에 약간의 차이가 있을 뿐입니다.
프로그래밍에서 이러한 형식 지정을 "구문"이라고 합니다. 코드를 작성하는 앱이 해당 코드를 이해할 수 있도록 코드를 작성해야 하는 방법입니다.
구문이 중요한 이유는 다음과 같습니다.
"친구야, 오늘은 어떻게 지내니?"
", 친구 가니? 당신의 헤이 데이 방법”
두 문장 모두 단어, 문자 및 공백이 동일합니다. 그러나 하나만 의미가 있으며 이는 일반적인 구문을 따르기 때문입니다.
코딩에서 한 프로그래밍 언어는 첫 번째 버전을 이해할 수 있지만 두 번째 버전은 이해할 수 없습니다. 그러나 다른 프로그래밍 언어에게 두 번째는 완전히 이해가 되는 반면 첫 번째는 횡설수설하게 보일 수 있습니다. 그러나 영어를 할 수 있는 사람이라면 두 줄의 의미를 이해하는 데 약간의 노력이 필요하더라도 두 줄의 의도를 이해할 수 있습니다.
그것이 (일종의) regex의 다양한 맛과 같습니다. 그들은 모두 당신과 약간 다르게 보이고 약간 유사하게 보일 것입니다. 그러나 사용 중인 앱에 적합한 버전을 사용해야 합니다. 그렇지 않으면 해당 앱은 귀하가 작성한 내용을 전혀 알 수 없습니다.
Shortcuts 앱은 정규식의 ICU 특성을 이해하므로 사용하고 싶은 특성입니다. regex101.com 사이트에는 페이지 왼쪽에서 선택할 수 있는 몇 가지 다른 특징이 있습니다. 그러나 ICU와 매우 유사한 PCRE를 사용합니다.
온라인에서 다양한 종류의 정규식을 접하게 될 것이기 때문에 다양한 종류의 정규 표현식이 있다는 것을 아는 것이 중요합니다. 훔치고 싶지만 바로가기와 함께 작동하지 않는 정규식을 발견했거나 제대로 표시되지 않는 경우 어떤 형식으로 작성되었는지 확인하세요!
바로 가기를 사용하여 정규식 학습을 시작하는 데 도움이 되는 웹 사이트 및 참조
정규식 작성의 실제 메커니즘을 살펴보기 전에 다루려는 또 다른 사항은 리소스입니다. 이 게시물이 정규식 학습에 대한 완전한 리소스라고 주장하는 것은 결코 아닙니다. 바로 가기와 함께 정규식을 사용하려는 사람들에게 유용한 시작점일 뿐입니다.
정규식에 대해 더 자세히 알고 싶거나 이 기사가 필요한 도움을 주지 못한다고 생각되면 다음 기사, 가이드 및 도구 중 일부를 확인할 수 있습니다.
- https://regex101.com – 정규식 코드를 실시간으로 테스트할 수 있는 웹사이트.
- https://www.shortcutfoo.com/app/dojos/regex/cheatsheet – 각 캐릭터가 하는 일을 잊었을 때를 위한 치트 시트
- http://www.rexegg.com – 이 웹사이트는 정규식에 대해 알아야 할 모든 것을 배울 수 있는 포괄적인 리소스입니다. 정규식에 능숙해지고 싶다면 이것을 확인하십시오.
- https://scottwillsey.com/blog/ios/regex1/ – 이것은 바로 가기와 함께 정규식 사용에 대한 4부로 구성된 블로그 시리즈입니다. 나는 이 가이드와 매우 다른 접근 방식을 취하고 있으므로 이 기사의 좋은 동반자 시리즈가 되어야 합니다.
- Stack Overflow와 Reddit은 모두 정규식 질문과 진행 상황을 공유하여 조언과 답변을 얻을 수 있는 좋은 웹사이트입니다.
이러한 리소스는 목록에 나열된 리소스와 다릅니다. 바로 가기 앱에서 정규식을 사용하는 방법을 배우고 싶지 않다면 섹션에서 모두 실제로 정규식 학습을 시작해야 합니다. 그것들은 더 포괄적이고 다른 것들은 단지 참조 포인트입니다.
바로 가기와 함께 정규식을 사용하여 기본 텍스트 검색을 수행하는 방법
괜찮은! 이제 모두가 기다려온 지점에 도달했습니다. 바로 가기와 함께 정규식을 사용하는 기본 사항을 배울 것입니다.
정규식으로 할 수 있는 가장 간단한 작업이므로 기본 검색부터 시작하겠습니다. 이전에 언급했듯이 regex101.com을 다른 탭에서 열어 따라갈 수 있도록 하는 것이 좋습니다.
가장 기본적으로 regex는 (또는 성냥) 당신이 그것에 입력하는 무엇이든. 예를 들어 괜찮은
내 정규식 코드로 이 가이드에서 "Alright"라는 단어의 모든 인스턴스를 찾습니다.
대소문자, 띄어쓰기, 구두점이 중요합니다. 즉, 괜찮은
, 괜찮은
, 괜찮은!
, 그리고 괜찮은 ,
모두 다른 결과를 낳을 것입니다.
그리고 그게 다야! 특수 문자를 사용하지 않고 정규식 검색에 무언가를 입력할 때마다 정규식은 입력한 내용과 정확히 일치하는 모든 것과 일치합니다.
하나의 캐치가 있습니다! 키보드의 일부 문자는 특수 정규식 문자이기도 합니다. 즉, 정규식 코드에서 일종의 기능을 수행합니다.
NS ?
기호는 그러한 문자 중 하나입니다. 정규식 코드에서 수량자로 사용됩니다. 따라서 "Alright?"를 검색하려고 하면 입력하여 괜찮은?
정규식 코드로 원하는 것을 얻지 못할 것입니다.
![](/f/70380bc1ab9d1f6457353bcf1efc9dbb.png)
이 문제를 해결하려면 "?"를 사용하도록 지정해야 합니다. 특수 문자가 아닌 문자열로. 이 캐릭터 또는 다른 캐릭터에 대해 그렇게 하려면 다음을 추가하십시오. \
특수 속성을 무효화하려는 문자 바로 앞에 기호.
"알았어?"를 검색하려면 정규식을 사용하면 코드가 다음과 같이 표시됩니다.
괜찮은\?
![](/f/330260043d92fb0d7f3c26b25940f87e.png)
특정 문자가 정규식에서 특수 문자로 처리되는지 확실하지 않은 경우 다음을 확인할 수 있습니다. 이 치트 시트 정규식의 모든 특수 문자에 대해.
"또는" 문자를 사용하여 둘 이상의 단어 검색
정규식으로 문자열을 검색하는 또 다른 중요한 구성 요소는 "또는" 함수를 사용하는 것입니다. 이것은 두 단어/문자 사이에 "이것 또는 이것과 일치"라고 말할 수 있는 문자입니다.
예를 들어 "alright" 및 "Alright"라는 단어에 대한 텍스트 본문을 검색하려면 다음을 사용합니다. |
캐릭터. 이렇게:
알았어|알았어
찾기 어려우시다면 |
캐릭터, 잡고 옮기다 키를 누르고 \
열쇠. 위에 있어요 반품 대부분의 키보드에서 키.
정규식 검색에 변수 구성 요소 추가
자, 이제 중립 정규식이 무엇인지 알았으므로 첫 번째 특수 문자를 선택할 시간입니다. 그것은 대괄호가 될 것입니다. []
.
이 대괄호 안에 무엇을 넣든 정규식 검색의 가변 구성 요소로 간주됩니다. 대괄호 안에 원하는 만큼의 문자를 넣을 수 있지만 매치당 하나만 유효합니다.
좋아, 조금 복잡해 보이지만 그렇지 않습니다! 실제 모습은 다음과 같습니다.
-
[괜찮은
"Alright"라는 단어와 일치합니다. 무의미한 종류. -
[AB]좋아
"Alright" 및 "Blright" 모두와 일치합니다. -
알았어 알았어
"Alright", "Alroght", "Alrught", "Alrxght" 등과 일치합니다.
![](/f/a0dc8c0e3d37921a09e81008e9407b11.png)
대괄호 내에서 문자를 결합할 수 있을 뿐만 아니라 정규식의 같은 줄에 여러 대괄호를 사용할 수도 있습니다. [AB]r[i1]gh[tuvwxyz]
유효한 정규식 조각입니다. 그러나 몇 분 전처럼 혼란스러워 보이지 않기를 바랍니다!
범위는 검색 범위를 넓힐 수 있습니다.
바로 가기와 함께 유용할 정규식의 다음 비트는 범위입니다. 범위를 사용하면 수락할 문자 범위를 지정할 수 있습니다.
이전 섹션에서 내 대괄호에 연속 문자가 많이 포함되어 있음을 눈치채셨을 것입니다. 가장 긴 것은 [tuvwxyz]
. 해당 문자는 알파벳에서 같은 순서로 서로 바로 옆에 나타납니다.
즉, 범위를 입력하는 대신 사용할 수 있습니다. 그것은 다음과 같이 보일 것입니다:
좋아[t-z]
이 정규식 코드는 다음과 같은 작업을 수행합니다. 좋아[tuvwxyz]
. 더 깔끔하고 쓰기 편합니다.
같은 범위를 다음으로 바꿀 수 있습니다. [아~즈]
알파벳의 소문자를 허용하려면. 또는 다음을 사용할 수 있습니다. [0-9]
한 자리 숫자를 수락하려는 경우.
동일한 대괄호 내에서 범위를 결합할 수도 있습니다. 예를 들어, 이 알람[i-ux-z]ght
"Alright", "Alroght", "Alrxght" 및 "Alright"는 허용하지만 "Alraght" 또는 "Alrvght"는 허용하지 않습니다.
![](/f/0539fe4f5351aeda0a97eb845ed26608.png)
그런데 이 코드가 수락할 수 있는 "Alright"라는 단어의 다른 변형이 있으며 그렇지 않은 경우가 더 많습니다. 그것은 내용을 짧게 유지하기위한 짧은 선택 일뿐입니다.
무엇인지 이해하기 어렵다면 [i-ux-z]
즉, 다음과 같이 작성하는 것이 도움이 될 수 있습니다.
[i-u, x-z]
이는 올바른 정규식 구문이 아닙니다. 범위를 구분하기 위해 쉼표를 사용해서는 안 됩니다. 하지만 그것이 더 이해가 되는 데 도움이 되기를 바랍니다!
범위를 구분하기 위해 정규식에서 쉼표가 필요하지 않으며 범위를 서로 바로 옆에 배치할 필요도 없습니다. 당신은 그것을 변경할 수 있습니다 [i-uabcx-z]
. 이렇게 하면 이전과 동일한 범위에 "a", "b" 및 "c" 문자를 추가할 수 있습니다.
바로 가기를 사용하여 정규식 검색에서 단어와 문자를 제외하는 방법
좋아, 이제 우리는 어딘가에 도착하고 있다! 여기까지 이 기사를 따라왔다면 아래 코드를 보고 일치하는 내용을 이해할 수 있을 것입니다.
앱[p-r]le[Tt]ool[BbLF]ox
읽을 수 있다면 정규식 코드에 다음이 포함되어 있음을 알 수 있습니다. 많이 "AppleToolBox"라는 단어의 가능한 변형. 그렇다면 범위를 변경하지 않고 허용하는 변형 수를 줄이려면 어떻게 해야 할까요?
여기서 "not" 문자가 등장합니다. 다음과 같습니다. ^
. 키보드에서 찾기 어렵다면(저처럼) 길게 누르세요. 옮기다 를 누르고 6 키보드의 키.
사용하려면 ^
문자를 제외하고 싶은 문자의 시작 부분에 놓으십시오.
캐치가있다! NS ^
문자는 정규식 함수 외부에서 작동하지 않습니다. 검색에서 해당 문자를 제외하기 위해 문자 "A" 앞에 배치할 수 없습니다. 정규식 코드 ^아
대문자 "A"만 검색합니다.
대신 대괄호 및 기타 정규식 특수 문자와 결합하십시오.
예를 들어 "A"로 시작하지 않는 "Alright"라는 단어를 검색하려면 다음 코드를 사용합니다. [^A]좋아
.
![](/f/8f4e891920940025836893942144d7f6.png)
범위와 결합할 수도 있습니다! 대괄호 시작 부분에 넣으면 범위가 포함된 해당 대괄호 내의 모든 항목이 검색에서 제외됩니다. 이렇게:
![](/f/014ec0a38e4dd32130aae5c9f4adfcaf.png)
검색에서 특정 단어를 제외하려면 어떻게 합니까?
이 정보를 찾기가 어려웠습니다. 그러나 스택 오버플로 사용자에게는 솔루션이 있었고 다음과 같이 보입니다.
^(?!(단어)$).+$
그냥 교체 단어
검색에서 제외하고 싶은 단어로. 이렇게:
![](/f/df96f2f11145f1939f386069b5855cdd.png)
스택 오버플로 게시물을 읽을 수 있습니다. 여기 이 특정 사용 사례에 대해 자세히 알아보려면
와일드카드는 더 많은 검색 옵션을 제공할 수 있습니다.
그것은 우리를 와일드 카드로 가져옵니다. 마침표인 와일드카드 문자 .
, 막대 없음을 나타내는 단일 문자를 나타내는 데 사용됩니다. 그냥 입력하면 .
바로 가기가 있는 정규식 코드로 텍스트 본문의 모든 단일 문자를 개별 일치로 반환합니다.
![](/f/2a307376eb5a56bd70d7a951ceb220f9.png)
물론 그 목적으로 사용하는 것은 권장하지 않습니다! 대신 단어의 한 글자 대신 사용하는 것이 좋습니다. 예를 들어, 알았어.
"Alright", "Alrxght", "Alr
그리고 그것은 거의 그것입니다! 와일드카드 문자는 이해하기 매우 쉽습니다. 그것은 모든 것과 일치합니다! 따라서 고유한 문자를 가지면서 특정 형식과 일치하는 문자열을 찾는 데 도움이 됩니다.
예를 들어 이메일은 모두 동일하지 않으면서도 매우 유사하게 보일 것입니다. 와일드카드를 사용하면 ".com" 및 "@"와 같이 있을 것으로 알고 있는 요소를 모르는 문자(예: "my_email567", iCloud 또는 "Gmail")와 결합할 수 있습니다.
또 다른 흥미로운 사용 사례는 .
특정 길이의 문자열을 찾는 문자.
예를 들어, 텍스트 본문에서 모든 4자 문자열을 찾으려면 다음을 사용할 수 있습니다. ...
양쪽에 공간이 있습니다.
![](/f/9ff1fc4bd52cef0f1a725d174d8c6e83.png)
다음은 동일한 텍스트 본문에 있는 모든 7자 문자열입니다.
![](/f/9bec237750b14a040be3eedbe7681ead.png)
이것은 특정 길이의 문자열을 찾는 완벽한 방법이 아닙니다. 위의 예에서 볼 수 있듯이 일부 문자열은 일치하지 않아야 하고, 일부는 무시되어야 합니다. 당신이 .
문자를 세는 문자.
또한, .
정규식의 특수 문자입니다. 추가해야 함을 의미합니다. \
마침표를 검색하려면 그 앞에. 즉, 괜찮은\.
"알았어"와 일치합니다.
수량자를 사용하여 찾고 있는 텍스트 길이 지정
좋아, 기술적으로 사용할 수 있도록 .
문자를 사용하여 특정 문자 수를 차지하는 문자열을 찾습니다. 하지만 대부분의 경우 더 구체적이고 싶을 것입니다.
그것이 수량자가 들어오는 곳입니다. 수량자를 사용하면 바로 가기와 함께 정규식을 사용할 때 찾고 있는 문자열의 길이를 지정할 수 있습니다.
예를 들어, 구체적으로 세 글자 길이의 단어를 찾고 싶다고 가정해 보겠습니다. 이를 지정하려면 다음 대괄호를 사용합니다.
{}
이 브래킷을 이 뒤에 배치하면 []
대괄호 안에 있는 문자 수와 일치하는 문자열을 원한다고 지정하고 있습니다. {}
및 여기에 지정된 문자 범위 []
.
지금은 별로 의미가 없을 것 같으니 예를 들어보겠습니다!
텍스트 본문에서 언급된 연도를 찾고 싶다고 가정해 보겠습니다. 1년은 4개의 숫자로 구성되기 때문에(분명히 매년은 아니지만 여기에서 나를 따르십시오.), 이 코드를 사용하여 해당 텍스트 내의 연도를 일치시킬 수 있습니다.
[0-9]{4}
이 코드는 우리가 0에서 9까지의 문자로 구성된 문자열을 원한다고 말하고 있습니다. 특히 길이는 4자입니다. 다음 스크린샷에서 이 특정 문자열을 찾는 방법을 확인할 수 있습니다.
![](/f/82a2e12dfe162ae51afb7a3bbc2ae606.png)
이 정규식 코드에는 몇 가지 문제가 있으며 공백이나 구두점을 고려하지 않는다는 점에 유의해야 합니다. 따라서 코드가 "12345678"과 같이 4자보다 긴 숫자를 찾으면 문자열 "1234"와 문자열 "5678"을 찾습니다.
이 문제를 해결하려면 코드 시작 부분에 공백을 추가하고 코드 뒤에 대괄호를 추가합니다. {4}
다른 공백, 마침표, 물음표, 쉼표 및 느낌표가 포함된 문자입니다. 그렇게 하면 끝에 공백 대신 구두점이 있는 숫자 문자열이 누락되지 않고 긴 숫자 문자열을 간과하게 됩니다.
수량자를 사용하여 둘 이상의 문자열 길이를 지정할 수도 있습니다. 예를 들어, 4자 길이의 문자열뿐만 아니라 7자와 11자도 찾고 싶습니다. 다음과 같이 표시됩니다.
[a-z]{4,7,11}
몇 가지 더 알고 싶은 수량자가 있습니다.
좋아, 그래서 아직 더 많은 수량자가 있습니다! 이 마지막 몇 개의 수량자는 너무 구체적이지 않으면서 문자열의 길이를 지정하려는 경우에 사용됩니다.
예를 들어, 정규식이 일치할 수 있는 길이의 문자열을 찾고 싶다고 가정해 보겠습니다. 이름처럼! 이름(서구 국가의 경우)은 하나의 대문자로 시작하여 임의의 소문자로 끝나고 공백이 뒤따릅니다. 이름을 찾으려면 다음 코드를 작성합니다.
[A-Z][a-z]*
[A-Z]
문자열의 첫 번째 문자가 대문자여야 함을 지정합니다. [a-z]*
나머지 문자열이 소문자로 구성되어야 한다고 지정하지만 뒤에 오는 문자 수는 중요하지 않습니다. 그리고 끝에 공백은 소문자 끝에서 공백을 찾으면 일치를 종료한다는 의미입니다.
정규식의 황금 콤보는 다음과 같습니다. .*
. 즉, 모든 문자를 무한대로 일치시킵니다. 즉, 전체 텍스트 본문을 하나의 항목으로 일치시킵니다.
다음으로 알아야 할 수량자는 +
. 이것은 마치 *
문자가 0인 문자열과 일치하지 않는다는 점을 제외하고. *
길이가 없는 문자열을 포함하여 모든 길이의 문자열과 일치합니다. +
, 반면에 하나 이상의 문자가 포함된 문자열이 필요합니다.
마지막으로 ?
수량자. 이것은 이상한 것입니다. 문자열이 길이가 0자이거나 길이가 1자임을 지정합니다. 그게 전부입니다. 아무것도 아니면 그냥 하나입니다. 따라서 코드를 사용하면 [아~즈]?
시작과 끝에 공백이 있으면 텍스트 본문 내에서 단일 문자를 찾습니다.
텍스트 문자열의 시작과 끝에서 문자 검색
바로 가기와 함께 정규식 사용에 대한 가이드가 거의 끝나가고 있습니다! 바로 가기와 함께 사용할 정규식 코드에는 두 가지 종류가 더 있습니다.
첫 번째는 시작 및/또는 종료 방식에 따라 문자열을 일치시킬 수 있는 문자입니다.
대괄호가 아닐 때, ^
캐릭터의 역할이 "제외하다"에서 "~로 시작하다"로 바뀝니다. 문자열이 원하는 것으로 시작해야 함을 지정합니다. 예를 들어 다음과 같이 작성하면 ^아
, "Alright", "Apple" 및 "A" 문자열의 문자 "A"와 일치합니다.
그러나 전체 단어와 일치하지는 않습니다. 이를 위해 다음으로 변경해야 합니다. ^A[A-Z-Z]*
. 해당 단어가 대문자 "A"로 시작하는 한 단락/문자열의 첫 번째 단어와 일치합니다.
참고로 다음과 같이 쓸 수 있습니다. [A-Z-Z]
같이 [A-Z]
. 그것은 같은 것을 의미합니다. 당신이 배울 때 첫 번째가 조금 더 명확하다는 것을 알았습니다.
문자열의 끝을 지정하려면 $
캐릭터. 그것은 와 동일하게 작동합니다 ^
캐릭터. 유일한 차이점은 시작이 아닌 대괄호/문자열 끝에 쓴다는 것입니다.
예를 들어 "le"로 끝나는 문자열/단락을 찾으려면 다음 코드를 사용합니다. [A-z]*le$
. 문자열이나 단락의 끝에 있는 한 "Table", "apple" 및 "capable"과 일치합니다.
Regex는 문자열 끝에 공백이나 구두점이 있는 경우에도 이 일치를 거부합니다. "테이블." 이 코드와 일치하지 않습니다.
이를 수정하기 위해 구두점을 고려할 수 있습니다. 이 코드는 구두점 뒤에 공백이 오는 것을 포함하여 문자열 끝에 발생할 수 있는 다양한 형태의 구두점 및 공백을 설명합니다.
[A-z]*(le[\.\?!, ]?[ ]?)$
해당 코드는 "Able", "table.", "stable" 및 "capable? “.
바로 가기가 있는 정규식의 그룹화 기능을 사용하여 텍스트 문자열 저장
괜찮은! 바로 가기와 함께 정규식 사용에 대한 AppleToolBox 가이드를 완료했습니다. 학습해야 할 정규식 함수가 하나 더 남았습니다. 바로 그룹화입니다.
그룹화는 작성하는 정규식 코드로 작업을 수행할 수 있게 해주는 정규식의 가장 중요한 기능입니다. 그것이 없으면 정규식은 검색 기능일 뿐입니다. 문자열이 더 큰 본문 내에 존재하는지 여부만 알려줄 수 있습니다. 즉, "true" 또는 "false"를 반환합니다.
그러나 그룹화를 사용하면 정규식 코드의 결과를 저장할 수 있습니다. 즉, 일치 항목을 복사하고, 변수에 저장하고, 다른 텍스트로 교체하고, 서식을 수정하고, 정규식으로 수행하려는 모든 작업을 수행할 수 있습니다.
다행히도 그룹화는 매우 쉽습니다! 그룹화하고 싶은 것을 괄호 안에 넣으면 됩니다. ()
. 괄호 안에 무엇을 입력하든 그룹으로 처리됩니다.
다음과 같이 괄호 안에 정규식 코드의 전체 줄을 넣으면 (.*@.*\..{3})
, 그러면 해당 그룹이 코드에 의해 기억되어 나중에 다시 불러올 수 있습니다.
필요할 때만 그룹을 사용하는 것이 중요합니다. 메모리에 저장되기 때문에 코드 성능이 저하될 수 있습니다. 필요할 때를 위해 그룹을 저장하십시오!
조직을 위해 그룹을 사용할 수도 있습니다.
그룹을 사용하여 바로 가기로 정규식 코드를 구성할 수도 있습니다. 이렇게 하면 괄호 안의 그룹이 반드시 기억되는 것은 아닙니다.
예를 들어, 마지막 문자가 무엇인지 신경 쓰지 않는다는 점을 제외하고 "Hello"라는 단어를 일치시키고 싶다고 가정해 봅시다. 소문자, 대문자 또는 숫자일 수도 있습니다. "Hell3838djdjajaksks" 및 "Hello"는 일치 항목으로 계산되어야 합니다. 반면에 "지옥"은 계산되어서는 안됩니다.
이 작업을 수행하기 위해 코드를 작성합니다. 지옥[A-z]|[0-9]+
. 그러나 이것은 내가 얻은 결과입니다.
![](/f/4119408864de741e8b53817564b59e1a.png)
내 예상과 일치하지 않는 이유는 +
에만 적용되고 있다. [0-9]
까치발. 두 대괄호에 모두 적용하려면 필요합니다.
또한이 코드는 다음 중 하나를 원한다고 말합니다. 지옥[A-Z]
또는[0-9]
. 따라서 "Hell"로 시작하고 문자로 끝나는 단어 또는 숫자 문자열을 찾는 것과 일치합니다. 내가 실제로 필요한 것은 문자나 숫자로 끝나는 단어 "Hell"의 인스턴스와 일치하는 것입니다.
이 문제를 해결하기 위해 그룹을 사용하고 코드를 다음과 같이 다시 작성할 수 있습니다. 지옥([A-z]|[0-9])+
. 이제 문자나 숫자가 뒤에 오는 "지옥"이라는 단어를 찾고 있습니다. 그리고 왜냐하면 +
이 두 대괄호에 모두 적용되며 문자나 숫자가 하나 이상 있는 한 문자와 숫자의 모든 조합이 가능합니다.
아래 스크린샷에서 볼 수 있듯이 이 그룹은 해당 그룹 내에 정보를 저장하지 않고도 내 문제를 해결합니다.
![](/f/2bf0957d091c707996ebe378502d9a45.png)
이제 뭐?
그리고 그게 다야! 이것이 바로 가기와 함께 정규식을 사용하는 것에 대해 알고 싶어할 수 있는 거의 모든 것입니다. 처음에는 이해가 되지 않았더라도 지금 정규식으로 실험을 시작할 수 있을 만큼 자신감이 생기길 바랍니다.
이제 정규식의 기본 사항을 알았으므로 바로 가기에서 사용할 준비가 되었습니다! 바로 가기는 다음 작업에서 정규식 입력을 허용합니다.
- 텍스트 일치
- 텍스트 바꾸기
이 두 가지 바로 가기 작업을 사용하여 바로 가기에 정규식을 삽입할 수 있습니다.
이것을 바로 가기의 자동화 기능과 함께 사용하면 매우 강력한 도구를 마음대로 사용할 수 있습니다.
정규식을 사용하여 바로가기의 텍스트 서식을 쉽게 지정하고 이메일, 텍스트, 웹사이트에서 정보를 가져올 수 있습니다. 파일 및 일정 이벤트, 지정된 형식을 따르는 텍스트 생성, 입력이 올바르게 입력되었는지 확인, 더.
예를 들어 이메일과 일치시키고 싶다고 가정해 보겠습니다. 텍스트 문자열이 이메일인지 확인해야 할 수도 있고 텍스트 본문에서 이메일을 가져오고 싶을 수도 있습니다.
이것을 어떻게 분해하시겠습니까?
글쎄, 당신은 이메일의 기본 구조가 문자, 숫자 및 문자의 조합이고 뒤에 "@" 기호가 온다는 것을 알고 있습니다. Gmail이나 iCloud와 같은 웹사이트 이름 다음에 ".com", ".org" 또는 다른 종류의 3자 최상위 수준이 옵니다. 도메인.
정규식으로 작성하려면 바로 다음에 오는 최소 한 문자 길이의 문자열을 원한다고 지정해야 합니다. "@" 기호, 그 다음 최소 한 문자의 또 다른 문자열, ".", 그 다음 3개의 문자열 문자. 그것은 다음과 같이 보일 것입니다:
[이메일 보호됨]+\..{3}
이것을 붙여넣기 하면 텍스트 일치 또는 텍스트 바꾸기 바로 가기에서 작업을 수행하면 이메일 주소를 찾고, 저장하고, 조작할 수 있는 자동화를 갖게 됩니다.
이러한 종류의 문제 해결을 사용하여 자신만의 정규식 솔루션을 만들거나 다른 사람들이 온라인에서 만든 솔루션을 찾을 수 있습니다!
바로 가기와 함께 정규식을 사용하여 자동화를 한 단계 끌어 올리십시오.
그리고 친구 여러분, 정말 그렇습니다. 이 기사와 함께 팔로우하는 것이 즐거웠기를 바랍니다! 이것은 내가 AppleToolBox에 대해 작성한 것 중 가장 야심찬 부분 중 하나입니다. 나는 그것을 작성하기 위해 스스로 정규식을 가르쳐야 했고, 그렇게 함으로써 내가 당신이 그것을 배우는 데 도움이 될 수 있기를 바랍니다.
바로 가기와 함께 정규식을 사용하는 것은 스마트폰이나 컴퓨터에서 다른 작업을 수행하는 방법을 배우는 것과 다르지 않습니다. 약간의 시간과 인내심만 투자하면 결국에는 도달할 수 있습니다.
Apple에 관한 더 많은 가이드, 튜토리얼 및 뉴스를 보려면 나머지 부분을 확인하십시오. AppleToolBox 블로그.
괜찮은 [A-Z][a-z]+
, 다음에 만나요!