我有一个以下形式的字符串:
data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'>Avatar data
它可以是不同的语言,但无论如何我需要得到一个字符串之间的字符串'' 也就是说,在上面的例子中,我需要得到以下字符串:
view-7631b26ea80b1b601c313b15cc4e2ab03faedf30
我可以使用string.replace(regexp,str)方法吗?
我使用以下正则表达式突出显示了所需的行:
/'\b(.*)\b'/gm
现在,使用方法string.replace
我需要删除除...之外的所有内容
有什么建议吗?
答案 0 :(得分:0)
使用namespace App\Http\Controllers;
use Student;
use StudentRecord;
class StudentController extends Controller {
public function getStudent($id) {
return Student::find($id)->load('StudentRecord');
}
}
方法。
match
答案 1 :(得分:0)
你们两边都有很好的固定锚文本,所以:
var match = /data-translate='([^']+)'/.exec(str);
var substr = match && match[1];
直播示例:
var str = "data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'>Avatar data";
var match = /data-translate='([^']+)'/.exec(str);
var substr = match && match[1];
document.body.innerHTML =
"<pre>Got: [" + substr + "]</pre>";
&#13;
但是,正如我在评论中所说,using a simple regular expression to extract information from HTML is usually doomed to fail。例如,您可能不想匹配此内容:
<p>The string is data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'</p>
...但是,一个简单的正则表达式解决方案就是这样做的。要正确处理HTML,您必须使用正确的HTML解析器。
答案 2 :(得分:0)
你也可以尝试这个:
/\'([^\']+)\'/gm