>  기사  >  백엔드 개발  >  Go Regexp: 전체 단어 또는 하위 문자열과 일치하거나 전혀 일치하지 않음

Go Regexp: 전체 단어 또는 하위 문자열과 일치하거나 전혀 일치하지 않음

WBOY
WBOY앞으로
2024-02-08 20:51:041048검색

Go Regexp:匹配完整单词或子字符串或根本不匹配

질문 내용

Go를 사용하여 regexp.Regexp와 패턴을 일치시키는 방법을 찾으려고 합니다.

대회 기준은 다음과 같습니다.

  1. 줄 시작 부분에서 FooBar 或其子字符串 Foo와 일치해야 합니다. 그렇지 않으면 전혀 일치하지 않습니다.
  2. #1과 일치하는 경우 일치 항목 뒤에는 다른 문자가 와야 합니다(예: S+)

따라서 다음과 같이 일치해야 합니다.

  • 일치: FooABC
  • 일치: FooBarABC
  • 일치하지 않음: FooBar (뒤에 다른 문자가 없기 때문에)
  • 일치하지 않음: ABC(因为它不是以 Foo)
  • 으로 시작

다양한 표현을 시도해 보았으나 이해가 안되는 것 같습니다.

다른 구현에는 부정적인 예측 모드가 존재하는 것을 발견했지만 Go에서는 이를 제공하지 않는 것 같습니다. 이 문제를 해결할 다른 방법이 있나요?

참조(업데이트됨): https://regex101.com/r/SWSTzv/3

이 문제는 regexp를 사용하지 않고도 분명히 해결될 수 있다는 것을 알고 있습니다. 그러나 이 요청의 목적은 Go의 stdlib 구현으로 이 문제가 해결될 수 있는지 이해하는 것입니다. regexp 的情况下解决。然而,这个请求的目的是了解这个问题是否可以通过 Go 的 stdlib 实现来解决。


正确答案


为什么不直接反转与正则表达式 ^Foo(?:Bar)?$

정답

정규 표현식 ^Foo(?:Bar)?$와 일치하는 결과를 그냥 반전시키면 어떨까요(글쎄요, )?

으아악 출력: 으아악

rextester에서 사용해 보세요.
업데이트 em> 정규 표현식을 기반으로 하고

.을 사용하여 하나 더 으아악

🎜rextester🎜에서 사용해 보세요. 🎜

위 내용은 Go Regexp: 전체 단어 또는 하위 문자열과 일치하거나 전혀 일치하지 않음의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제