영숫자 +“&”및“;”을 포함한 정규 표현을 찾고 있습니다.
문제
문제는 다음과 같습니다.
split=re.compile('\\W*')
이 정규 표현은 일반 단어를 다룰 때 잘 작동하지만 다음과 같은 단어를 포함시키기 위해 표현이 필요한 경우가 있습니다. käyttäj&aml;auml;
.
포함하려면 Regex에 무엇을 추가해야합니까? &
그리고 ;
캐릭터?
해결책
당신은 아마도 문제를 뒤집어 놓고 싶을 것입니다. 즉, 공백없이 모든 캐릭터를 찾습니다.
[^ \t\n]*
또는 추가 문자를 추가하려고합니다.
[a-zA-Z0-9&;]*
HTML 엔티티와 일치하려면 다음과 같은 것을 시도해야합니다.
(\w+|&\w+;)*
다른 팁
엔터티를 단위로 취급합니다 (수치 문자 코드도 포함 할 수 있기 때문에) 다음과 같은 정규 표현이 발생합니다.
(\w|&(#(x[0-9a-fA-F]+|[0-9]+)|[a-z]+);)+
이것은 일치합니다
- 단어 문자 (“포함”
_
"), 또는 - HTML 엔터티로 구성됩니다
- 캐릭터 "
&
”,- 캐릭터 "
#
”,- 캐릭터 "
x
”다음과 같은 16 진수 숫자 또는 - 적어도 하나의 소수점 숫자, 또는
- 캐릭터 "
- 적어도 하나의 문자 (= 명명 된 엔티티),
- 캐릭터 "
- 세미콜론
- 캐릭터 "
- 적어도 한 번.
/편집 : 오류를 지적 해 주신 τζωτζιου에 감사드립니다.
추가 캐릭터를 포함하는 캐릭터 클래스를 만들어야합니다. 예를 들어:
split=re.compile('[\w&;]+')
이것은 트릭을 수행해야합니다. 귀하의 정보를 위해
\w
(소문자 'w') 단어 문자와 일치합니다 (영숫자)\W
(자본 W) 부정적인 문자 클래스입니다 (의미가없는 캐릭터와 일치 함).*
0 번 이상 일치합니다+
한 번 이상 일치합니다*
캐릭터가 없어도 아무것도 일치합니다.
이것이 트릭을 한 것 같습니다.
split = re.compile ( '( w+& w+;)*')
제안 해주셔서 감사합니다. 그들 대부분은 Reggy에서 잘 작동했지만 RE.comPile에서 왜 실패했는지 잘 모르겠습니다.
제휴하지 않습니다 StackOverflow