Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php preg_替换如何删除除字母数字以外的所有数字_Php_Regex - Fatal编程技术网

Php preg_替换如何删除除字母数字以外的所有数字

Php preg_替换如何删除除字母数字以外的所有数字,php,regex,Php,Regex,如何删除除字母数字以外的所有数字,例如,如果我有如下字符串: Abs_1234abcd_636950806858590746.lands 变成这样 Abs_1234abcd_.lands 在这个特定的示例中,我们可以简单地使用\uuu作为左边界,使用作为右边界,收集数字并替换: 试验 可能是这样做的 查找(?i)(? 什么都没有取代 解释: 需要注意的是,在断言中的类[a-z\d]中, 存在一个数字,没有该数字可以让“abc901234def”匹配 (?i)#不区分大小写 (? 注意-存在

如何删除除字母数字以外的所有数字,例如,如果我有如下字符串:

Abs_1234abcd_636950806858590746.lands
变成这样

Abs_1234abcd_.lands

在这个特定的示例中,我们可以简单地使用
\uuu
作为左边界,使用
作为右边界,收集数字并替换:

试验
可能是这样做的

查找
(?i)(?
什么都没有取代

解释:
需要注意的是,在断言中的类
[a-z\d]
中,
存在一个数字,没有该数字可以让“abc9
0123
4def”匹配

(?i)#不区分大小写
(?

注意-存在速度更快的版本
(?i)\d(?)



Regex1:(?i)\d(?对于示例数据,也可以使用字符类不匹配单词字符或下划线
[\W\u]
。然后忘记使用
\K
匹配的内容

匹配要替换为空字符串的1+个数字,并断言右侧的数字不是单词字符或下划线

[\W_]\K\d+(?=[\W_])

下划线和句点是唯一的分隔符吗?到目前为止您尝试了什么,出了什么问题?警告:preg\u replace():未知修饰符'\'@Tod您是这样尝试的吗?您是否在模式周围添加了分隔符?
/[\W\uuu]\K\d+(?=[\W\u])/
如何用点替换最后一个?
 (?i)                   # Case insensitive
 (?<! [a-z\d] )         # Behind, not a letter nor digit
 \d+                    # Many digits
 (?! [a-z\d] )          # Ahead, not a letter nor digit
Regex1:   (?i)\d(?<!\d[a-z\d])\d*(?![a-z\d])
Completed iterations:   50  /  50     ( x 1000 )
Matches found per iteration:   2
Elapsed Time:    0.53 s,   530.56 ms,   530564 µs
Matches per sec:   188,478


Regex2:   (?i)(?<![a-z\d])\d+(?![a-z\d])
Completed iterations:   50  /  50     ( x 1000 )
Matches found per iteration:   2
Elapsed Time:    0.91 s,   909.58 ms,   909577 µs
Matches per sec:   109,941
[\W_]\K\d+(?=[\W_])