表arts
列title
-示例:
1122 A TITLE
025 - ANOTHER TITLE
1/7 - SOME TITLE
1 4 5 - SOME ANOTHER TITLE
我需要删除真实标题之前的所有内容。
要删除的字符是-除字母(标题应以字母开头)之外的所有字符。
所以我需要类似的东西:
update arts set title = replace(title, 'everything except letters on the beginning', '');
在php
内使用mysql
或phpmyadmin
。
有帮助吗?
答案 0 :(得分:1)
使用正则表达式将所有内容匹配到第一个字母,然后捕获其余的内容。
h264_mp4toannexb
输出:
$arr = ["1122 A TITLE",
"025 - ANOTHER TITLE",
"1/7 - SOME TITLE",
"1 4 5 - SOME ANOTHER TITLE"];
foreach($arr as $val){
preg_match("/.*?([a-zA-Z].*)/", $val, $m);
echo $m[1] . "\n";
}
答案 1 :(得分:1)
您可以使用正则表达式将其过滤掉:
$matches = []
if (preg_match("/^([0-9\-\_/ ]{0,})(.{0,})/", $string, $matches)) {
$filtered = $matches[2];
}
答案 2 :(得分:1)
我认为最好在PHP端执行所有这些操作,因为mysql不支持此操作。如果您真的想在MySQL端执行此操作,则需要编写自己的自定义函数,
尝试使用以下PHP代码。
$string = '1 4 5 - SOME ANOTHER TITLE';
$pattern = '/^[^a-zA-Z]{1,}/';
$replacement = '';
$title = preg_replace($pattern, $replacement, $string);
$qry = 'update arts set title = "'.$title.'"';
echo $qry;
以上代码将生成如下输出
更新美术集标题=“其他标题”