繁体   English   中英

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

[英]Looking for a regular expression including alphanumeric + “&” and “;”

这是问题所在:

split=re.compile('\\W*')

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

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

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

(\w|&(#(x[0-9a-fA-F]+|[0-9]+)|[a-z]+);)+

这匹配

  • 一个单词字符(包括“ _ ”),或
  • 一个 HTML 实体,包括
    • 字符“ & ”,
      • 字符“ # ”,
        • 字符“ x ”后跟至少一个十六进制数字,或
        • 至少一位十进制数字,或
      • 至少一个字母(=命名实体),
    • 分号
  • 至少一次。

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

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

[^ \t\n]*

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

[a-zA-Z0-9&;]*

如果您想匹配 HTML 实体,您应该尝试以下操作:

(\w+|&\w+;)*

您应该创建一个包含额外字符的字符类。 例如:

split=re.compile('[\w&;]+')

这应该可以解决问题。 供你参考

  • \\w (小写 'w')匹配单词字符(字母数字)
  • \\W (大写 W)是一个否定字符类(意味着它匹配任何非字母数字字符)
  • *匹配 0 次或多次, +匹配一次或多次,因此*将匹配任何内容(即使那里没有字符)。

看起来这个 RegEx 做到了:

split=re.compile('(\\\W+&\\\W+;)*')

感谢您的建议。 他们中的大多数人在 Reggy 上工作得很好,但我不太明白为什么他们在re.compile失败了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM