删除字符串开头和结尾的特定字符

Lar*_*una 0 php replace

我正在使用 PHP,并且尝试删除字符串末尾和开头的所有下划线字符。

这是字符串:____a_b_c__________
我希望结果是:a_b_c

我尝试过这个正则表达式,但它不起作用:

preg_replace('/[^a-z]+\Z/i', '', '____a_b_c__________');
Run Code Online (Sandbox Code Playgroud)

Art*_*nix 5

为什么不直接使用修剪

$string = trim($string, '_');
Run Code Online (Sandbox Code Playgroud)

正则表达式用于模式匹配,___它不是模式,而是下划线。

但如果我要使用正则表达式,我会这样做:

$string = preg_replace('/^_+|_+$/', '', $string);
Run Code Online (Sandbox Code Playgroud)

对于正则表达式

  • ^是一行的开始
  • _是下划线的,+是一个或多个
  • |是或
  • _是下划线的,+是一个或多个
  • $是行尾

然后我们只需将其替换为''