如何写这样一个过滤字符串的正则?
57< img src="/dev-build/5c1800f8cea587969777d0e2a11ec895.png" class="face-pic" data-labface="4">fd< img src="/dev-build/1157a424588a6732a95ac1d622e129d0.png" class="face-pic" data-labface="17">12< img src="/dev-build/bc2e80fa39a2f7d95737fdbec02c0b27.png" class="face-pic" data-labface="21">比比
这里有这样一个字符串,我想取出文字内容和图片上面的data-labface的属性,按照顺序组成一个数组,
这是一段,用户自行输入的文本内容。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
js代码:
自己根据情况改正则,这里只匹配了数字,大小写不敏感
今儿个心情好,做一下活雷锋
JavaScript:
====================
var myregexp = /src="([^"]+)" class="face-pic" data-labface="(d+)"/img;
var match = myregexp.exec(subject);
while (match != null) {
for (var i = 0; i < match.length; i++) {
// matched text: match[i]
}
match = myregexp.exec(subject);
}
Java:
====================
try {
Pattern regex = Pattern.compile("src="([^"]+)" class="face-pic" data-labface="(\d+)"", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE);
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
for (int i = 1; i <= regexMatcher.groupCount(); i++) {
// matched text: regexMatcher.group(i)
// match start: regexMatcher.start(i)
// match end: regexMatcher.end(i)
}
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
php
=================
preg_match_all('/src="([^"]+)" class="face-pic" data-labface="(d+)"/im', $subject, $result, PREG_SET_ORDER);
for ($matchi = 0; $matchi < count($result); $matchi++) {
for ($backrefi = 0; $backrefi < count($result[$matchi]); $backrefi++) {
# Matched text = $result[$matchi][$backrefi];
}
}
这个是用户输入的一段文本,里面包括文字内容和表情,图片就是表情,我想取出的是 文本内容 和 表情符号中的data-labface属性的值, 例如 ['57', '4', 'fd', '17', '12', '21', '比比']
空格是我黏贴进去的时候产生的,可以忽略。。。
哇瑟,我测试了下是我要的结果呢,谢谢这位大神。。。。
问一下:
这个确实是用户输入的字符串吗? 还是用户输入内容的html源码?
个人觉得既然是js里面做, 可以考虑下面方式: