这是问题所在:
split=re.compile('\\W*')
这个正则表达式在处理正则词时工作得很好,但是在某些情况下我需要表达式来包含像käyttäj&aml;auml;
.
我应该在正则表达式中添加什么以包含&
and;
字符?
我会将实体视为一个单元(因为它们也可以包含数字字符代码),从而产生以下正则表达式:
(\w|&(#(x[0-9a-fA-F]+|[0-9]+)|[a-z]+);)+
这匹配
/编辑:感谢 ΤZΩΤZΙΟΥ 指出错误。
你可能想把问题反过来,即找到所有没有空格的字符:
[^ \t\n]*
或者您想添加额外的字符:
[a-zA-Z0-9&;]*
如果您想匹配 HTML 实体,您应该尝试以下操作:
(\w+|&\w+;)*
您应该创建一个包含额外字符的字符类。例如:
split=re.compile('[\w&;]+')
这应该可以解决问题。供你参考
\w
(小写'w')匹配单词字符(字母数字)\W
(大写 W)是一个否定字符类(意味着它匹配任何非字母数字字符) *
匹配 0 次或多次并+
匹配 1 次或多次,因此*
将匹配任何内容(即使那里没有字符)。看起来这个 RegEx 成功了:
split=re.compile('(\\\W+&\\\W+;)*')
感谢您的建议。他们中的大多数人在 Reggy 上工作得很好,但我不太明白为什么他们在re.compile
.