golang正则报错
<?php
/**
* Created by PhpStorm.
* User: admin
* Date: 2018/8/21
* Time: 15:06
*/
namespace app\admino\controller;
use app\common\model\AdminModel;
use app\common\model\BannerModel;
use app\common\model\ClientModel;
use app\common\model\LogerModel;
use app\common\model\SignModel;
use app\common\model\SmsModel;
use app\common\model\SystemModel;
use app\common\model\TagModel;
use app\common\model\UserModel;
use app\common\model\WechatOfficialAccountModel;
use think\db\Query;
use think\Exception;
use think\Log;
use think\Session;
class UserExt extends SingleTableBase
{
protected $model = "user";
protected $primary_show = false;
protected $title = "门店会员管理";
protected $is_edit = false;
protected $is_add = false;
protected $is_del = false;
protected $is_show = false;
protected $is_export=true;
protected $index_view = "/UserExt/index";
protected $table_header = [
"created_at" => "注册日期",
"user_id" => "客户编号",
"username" => "客户姓名",
"gender" => "性别",
"phone" => "联系电话",
"openid"=>"openid",
"content" => "影像文件下载链接",
"share_time" => "分享链接日期",
];
protected $filter_header = ["created_at", "share_time"];
protected $table_option = [
"gender" => [
'type' => self::TYPE_SELECT,
'data' => [1 => "先生", 2 => "女士"],
],
"created_at" => [
'type' => self::TYPE_TIME,
],
"share_time" => [
'type' => self::TYPE_TIME,
],
];
protected $table_ext_button = [];
protected $search_header = ["phone", "username"];
protected function data(Query $model, $page, $search, $filter = false, $w = [])
{
if (empty($_REQUEST["filter"]) && empty($_REQUEST["search"])) {
$model->where(["id" => "999999999"]);
}
$admin_info = AdminModel::getInstance()->where(["id" => Session::get("user")["user_id"]])->find();
$w["business_id"] = $admin_info["business_id"];
$data = parent::data($model, $page, $search, $filter, $w); // TODO: Change the autogenerated stub
for ($i = 0; $i < count($data["data"]); $i++) {
$data["data"][$i]["user_id"] = $data["data"][$i]["business_id"] . "-" . $data["data"][$i]["user_number"];
}
return $data;
}
protected function saveDataFilter(&$data)
{
$data["type"] = $_REQUEST["type"];
parent::saveDataFilter($data); // TODO: Change the autogenerated stub
}
public function updateContent($id, $content)
{
$user_info = UserModel::getInstance()->where(["id" => $id])->find();
$admin_info = AdminModel::getInstance()->where(["business_id" => $user_info["business_id"]])->find();
$array = [1 => "先生", 2 => "女士"];
if ($admin_info["type"] == 0) {
$sms_name = SignModel::getInstance()->where(["id" => $admin_info["sms_id"]])->find()["ems_sign"];
$msg = "【{$sms_name}】尊敬的:{$user_info["username"]}{$array[$user_info["gender"]]}!您的影像文件可以下载了,请您务必于7天内扫描二维码或通过公众号登录下载,并妥善保存,谢谢!";
try {
SystemModel::sendCode($user_info["phone"], $msg);
SmsModel::getInstance()->add(["title" => "影像下载通知", "business_id" => Session::get("user")["business_id"], "user_name" => $admin_info["name"], "phone" => $user_info["phone"], "content" => $msg, "username" => $admin_info["username"], "name" => $user_info["username"], "business_sms_name" => $admin_info["business_sms_name"]]);
UserModel::getInstance()->where(["id" => $id])->save(["content" => $content, "share_time" => date("Y-m-d H:i:s")]);
} catch (Exception $exception) {
$this->displayByError($exception->getMessage());
}
$this->displayBySuccess();
}
if ($user_info["is_bind"] == 1) {
$this->displayByError("用户已解绑,无法推送");
}
if(empty($user_info["openid"])){
$this->displayByError("用户openid为空");
}
UserModel::getInstance()->where(["id" => $id])->save(["content" => $content, "share_time" => date("Y-m-d H:i:s")]);
$push_log = WechatOfficialAccountModel::sendMessage($user_info["openid"], $user_info["business_id"], "template_one",
"https://{$_SERVER['HTTP_HOST']}/Api/Login/download.html?id={$user_info["business_id"]}", "尊敬的{$user_info["username"]}{$array[$user_info["gender"]]},您的影像文件已经可以下载了,请您务必于7天内,点击本条信息“查看详情”登录下载,并妥善保存。", [$user_info["phone"], date("Y-m-d H:i:s")], "下载影像时,请先将整个文件夹保存到您的网盘,再登录您的网盘将文件下载到您的手机或电脑。可能有些文件在您的网盘里不能直接预览缩略图,这属于正常现象,请您先将文件下载到您的手机或电脑里,再从手机或电脑里打开文件就可以了,感谢您的配合");
LogerModel::addLog("push_log", json_encode($push_log));
$this->displayBySuccess();
}
public function search()
{
$this->displayByData([], "UserExt/search");
}
}
相关代码
r, e := regexp.Compile("(?<=class\\s)[^\\s]+")
fmt.Println("错误信息",e)
class_name:=r.FindString(line)
fmt.Println("class的值",class_name)
异常
错误信息 error parsing regexp: invalid or unsupported Perl syntax: `(?<`
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x18 pc=0x6580c6]
goroutine 1 [running]:
regexp.(*Regexp).doExecute(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0000e1b50, 0x7, 0x0, 0x2, ...)
C:/Go/src/regexp/exec.go:527 +0x76
regexp.(*Regexp).FindString(0x0, 0xc0000e1b50, 0x7, 0x2, 0x2)
C:/Go/src/regexp/regexp.go:786 +0xb0
main.ReadPhp(0xc000110000, 0x2, 0x4)
C:/Users/lq/OneDrive/yueyingyunhuiyuanxitong/main.go:113 +0x58c
main.main()
C:/Users/lq/OneDrive/yueyingyunhuiyuanxitong/main.go:65 +0x149
Process finished with exit code 2
golang正则不支持环视语法,但你可以用捕获组的方式去处理
然后获取捕获组group1就是class的值了
测试文本发这里