我的字符串包含很多 HTML 实体,就像这样
"Hello <everybody> there"
我想按 HTML 实体将其拆分为:
Hello
everybody
there
有人可以建议我一种方法吗?可能正在使用正则表达式?
最佳答案
看起来您可以直接拆分 &[^;]*;
正则表达式。也就是说,分隔符是以 &
开头、以 ;
结尾的字符串,中间可以有除 ;
之外的任何内容。
如果一行中可以有多个分隔符,并且您不希望它们之间有空字符串,则只需使用 (&[^;]*;)+
(或一般情况下 (
delim
)+
模式)。
如果您可以在字符串的开头或前面有分隔符,并且您不希望它们成为由它们引起的空字符串,那么只需在拆分之前将它们 trim 掉即可。
示例
下面是演示上述想法的代码片段 ( see also on ideone.com ):
var s = ""Hello <everybody> there""
print (s.split(/&[^;]*;/));
// ,Hello,,everybody,,there,
print (s.split(/(?:&[^;]*;)+/));
// ,Hello,everybody,there,
print (
s.replace(/^(?:&[^;]*;)+/, "")
.replace(/(?:&[^;]*;)+$/, "")
.split(/(?:&[^;]*;)+/)
);
// Hello,everybody,there
关于javascript - 按 HTML 实体分割字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035825/