是否可以选择仅出现一次的角色?
我熟悉负面的后视,并尝试了以下内容
/(.)(?<!\1.*)/
但无法让它发挥作用.
例子:
given AXXDBD it should output ADBD
^^ - this is unacceptable
given 123558 it should output 1238
^^ - this is unacceptable
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助
可能有很多方法,但我认为你正在寻找类似的东西
(.)\1{1,}
Run Code Online (Sandbox Code Playgroud)
也就是说,任何字符后跟同一个字符至少一次.
你的问题用PHP和JS标记,所以:
PHP:
$str = preg_replace('/(.)\1{1,}/', '', $str);
Run Code Online (Sandbox Code Playgroud)
JS:
str = str.replace(/(.)\1{1,}/g, '');
Run Code Online (Sandbox Code Playgroud)
不使用正则表达式:
function not_twice ($str) {
$str = (string)$str;
$new_str = '';
$prev = false;
for ($i=0; $i < strlen($str); $i++) {
if ($str[$i] !== $prev) {
$new_str .= $str[$i];
}
$prev = $str[$i];
}
return $new_str;
}
Run Code Online (Sandbox Code Playgroud)
删除连续字符 (1+) 并将数字转换为字符串,以防您也需要这样做。
测试:
$string = [
'AXXDBD',
'123558',
12333
];
$string = array_map('not_twice', $string);
echo '<pre>' . print_r($string, true) . '</pre>';
Run Code Online (Sandbox Code Playgroud)
输出:
Array
(
[0] => AXDBD
[1] => 12358
[2] => 123
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |