小编dqm*_*mis的帖子

使用utf8格式的正则表达式过滤字符串

我正在尝试过滤转义特殊字符的字符串并将其转换为小写。例如:"Good morning!"转换为good morning
我当时将一个字符串传递给我的函数。
我已成功过滤了英语字符串,但传递本地语言字符串时出现问题。
如果要包含所有utf-8字符,应该使用哪种类型的正则表达式过滤器字符串?

#include <string>
#include <iostream>
#include <regex>
#include <algorithm>

std::string process(std::string s) {
    std::string st;
    std::regex r(R"([^\W_]+(?:['_-][^\W_]+)*)");
    std::sregex_iterator i = std::sregex_iterator(s.begin(), s.end(), r);
    std::smatch m = *i;
    st = m.str();
    std::transform(st.begin(), st.end(), st.begin(), ::tolower);
    return st;
}

int main() {
    std::string st = "?žuolas!";
    std::cout << process(st) << std::endl; // <- gives: uolas
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ regex unicode utf-8 c++14

9
推荐指数
1
解决办法
144
查看次数

docker-compose mysql init sql未执行

我正在尝试设置一个mysql docker容器并执行init sql脚本。不幸的是SQL脚本没有执行。我究竟做错了什么?

version: '3.3'
services:
  api:
    container_name: 'api'
    build: './api'
  ports:
    - target: 8080
      published: 8888
      protocol: tcp
      mode: host
  volumes:
    - './api:/go/src/app'
  depends_on:
    - 'mysql'
 mysql:
  image: 'mysql:latest'
  container_name: 'mysql'
  volumes:
    - ./db_data:/var/lib/mysql:rw
    - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
  restart: always
  environment:
    MYSQL_USER: test
    MYSQL_PASSWORD: test
    MYSQL_ROOT_PASSWORD: test
    MYSQL_DATABASE: test
  ports:
    - '3306:3306'
volumes:
  db_data:
Run Code Online (Sandbox Code Playgroud)

我执行文件 docker-compose up -d --build

mysql sql database docker docker-compose

5
推荐指数
2
解决办法
3649
查看次数

标签 统计

c++ ×1

c++14 ×1

database ×1

docker ×1

docker-compose ×1

mysql ×1

regex ×1

sql ×1

unicode ×1

utf-8 ×1