님이 작성하지 않은 파이썬 목록의 모든 단어와 일치합니다. 현재이 코드를 사용하여 모든 단어의 목록을 검색하고 있지만 그 앞에 @가있는 단어는 무시해야합니다.정규 표현식은 @
[@apples, peaches, oranges, @guava]
반환 단지 :
[peaches, oranges]
words = re.compile(r'\w+')
사람이 동일한 작업을 수행하려면 좀 도와 주 시겠어요?
님이 작성하지 않은 파이썬 목록의 모든 단어와 일치합니다. 현재이 코드를 사용하여 모든 단어의 목록을 검색하고 있지만 그 앞에 @가있는 단어는 무시해야합니다.정규 표현식은 @
[@apples, peaches, oranges, @guava]
반환 단지 :
[peaches, oranges]
words = re.compile(r'\w+')
사람이 동일한 작업을 수행하려면 좀 도와 주 시겠어요?
네거티브 룩어백을 사용하면됩니다. 이 같은 패턴은 작동합니다 :
(?<[email protected])\b\w+\b
참고 \b
(워드 경계) 그것이 pples
및 uava
을 일치합니다 그들없이 전체 단어 — 일치하는지가 확인한다. , 인 l
원래
[x for x in l if not x.startswith('@') ]
:
OP가 단어 목록을 말하고 있기 때문에'find ('^ [^ @]') 충분하지 않습니까? – Hyperboreus
@Hyperboreus OP가 하나의 문자열에서 여러 단어를 찾는다는 이야기라면, 아니오. OP가 하나의 단어를 포함하는 문자열 목록에 대해 이야기하는 경우 두 개의 다른 대답은 훨씬 더 우아합니다. –
왜
f = []
for w in l:
if not w.startswith("@"):
f.append(w)
이 시도, 왜이 ... 그것없이 비교적 간단한 작업을 보인다 정규식 다음 필요에 더 부담이 보인다 정규식 필터링되지 않은 목록.
또는 실제 목록 대신 생성기를 원하면 대괄호를 괄호로 대체하십시오.
유효한 목록이 아닙니다. ''@apples ","peaches ","oranges ","@guava "]'(정규 표현식이 아닌 해결책을 제안한 답변자가 생각하는 것) 목록에있는 각 항목 주위에 따옴표가 있습니까? 사실 파이썬 문자열''[@apples, peaches, oranges, @guava] ''? –