如何使用 Preg_replace 将 TOWER 2_3_C 替换为 T2_C
how to replace TOWER 2_3_C with T2_C using Preg_replace
我想用 preg_replace 替换我的字符串。我要替换:
TOWER 2_3_C
和
T2_C
实际上我想得到第一个字母并删除第二个小数。
为此,我使用了:
return preg_replace('/([A-Z]). * ? (. * ?)_(.*?)_(.*?)/', '-', $a);
但它不起作用。
有什么想法吗??
这应该可以做到。鉴于字符串,您可能希望使其更严格。
$string = 'TOWER 2_3_C';
echo preg_replace('/([A-Z]).*?(\d+?_).*?([A-Z])/', '', $string);
Regex101 演示:https://regex101.com/r/iX9dP5/1
这不是 remove the second number with its under score
。这会找到一个 A-Z
,直到一个数字,(如果你只想要一个放置的值,让它成为 \d
)下一个下划线,然后是第一个 A-Z
之前的任何东西。这是区分大小写的当前使用 i
修饰符或将 a-z
添加到字符 类.
在您的正则表达式中,您遇到了空格问题。例如:
. * ?
.
是单个字符, *
是零个或多个空格, ?
是可选空格(不能让空格出现在出于某种原因代码突出显示, 
是空白实体)。量词必须是前面的字符才能量化该字符。
我想用 preg_replace 替换我的字符串。我要替换:
TOWER 2_3_C
和
T2_C
实际上我想得到第一个字母并删除第二个小数。 为此,我使用了:
return preg_replace('/([A-Z]). * ? (. * ?)_(.*?)_(.*?)/', '-', $a);
但它不起作用。
有什么想法吗??
这应该可以做到。鉴于字符串,您可能希望使其更严格。
$string = 'TOWER 2_3_C';
echo preg_replace('/([A-Z]).*?(\d+?_).*?([A-Z])/', '', $string);
Regex101 演示:https://regex101.com/r/iX9dP5/1
这不是 remove the second number with its under score
。这会找到一个 A-Z
,直到一个数字,(如果你只想要一个放置的值,让它成为 \d
)下一个下划线,然后是第一个 A-Z
之前的任何东西。这是区分大小写的当前使用 i
修饰符或将 a-z
添加到字符 类.
在您的正则表达式中,您遇到了空格问题。例如:
. * ?
.
是单个字符, *
是零个或多个空格, ?
是可选空格(不能让空格出现在出于某种原因代码突出显示, 
是空白实体)。量词必须是前面的字符才能量化该字符。