寻找包含字母数字+"&"和";"的正则表达式

kar*_*ila 1 python regex encoding

这是问题所在:

split=re.compile('\\W*')
Run Code Online (Sandbox Code Playgroud)

这个正则表达式在处理常规单词时工作正常,但有时候我需要表达式包含像käyttäj&aml;auml;.

我应该在正则表达式中添加什么来包含&;字符?

Kon*_*lph 6

我会将实体视为一个单元(因为它们也可以包含数字字符代码),从而产生以下正则表达式:

(\w|&(#(x[0-9a-fA-F]+|[0-9]+)|[a-z]+);)+
Run Code Online (Sandbox Code Playgroud)

这匹配

  • 要么是单词字符(包括" _"),要么是
  • 由...组成的HTML实体
    • 字符" &",
      • 字符" #",
        • 字符" x"后跟至少一个十六进制数字,或
        • 至少一个十进制数字,或
      • 至少一个字母(=命名实体),
    • 分号
  • 至少一次.

/编辑:感谢ΤΖΩΤΖΙΟΥ指出错误.


Pie*_*BdR 5

你可能想要反过来解决问题,即找到没有空格的所有字符:

[^ \t\n]*
Run Code Online (Sandbox Code Playgroud)

或者您想要添加额外的字符:

[a-zA-Z0-9&;]*
Run Code Online (Sandbox Code Playgroud)

如果你想匹配HTML实体,你应该尝试类似的东西:

(\w+|&\w+;)*
Run Code Online (Sandbox Code Playgroud)