我有一个包含许多下划线的字符串,后跟单词ex:" Field_4_txtbox"我需要找到字符串中的最后一个下划线并删除它后面的所有内容(包括"_"),所以它会返回给我" Field_4"但我需要这个为不同长度的结束字符串工作.所以我不能修剪固定的长度.
我知道我可以做一个If语句,检查某些结局,比如
if(strstr($key,'chkbox')) {
$string= rtrim($key, '_chkbox');
}
Run Code Online (Sandbox Code Playgroud)
但是我想用一个正则表达式一次性完成这个,我怎么能做到这一点?
lur*_*ker 10
匹配的正则表达式将是:
/_[^_]*$/
Run Code Online (Sandbox Code Playgroud)
只需用''代替:
preg_replace( '/_[^_]*$/', '', your_string );
Run Code Online (Sandbox Code Playgroud)
没有必要使用极其昂贵的正则表达式,一个简单的strrpos()就可以完成这项工作:
$string=substr($key,0,strrpos($key,"_"));
Run Code Online (Sandbox Code Playgroud)
strrpos - 查找字符串中最后一次出现的子字符串的位置
| 归档时间: |
|
| 查看次数: |
2206 次 |
| 最近记录: |