我有,像这样的字符串:PHP - 的preg_replace不匹配之外的字符匹配的字符串
// example
$str1 = " 10.503 GB 3.4 GiB ";
$str2 = " 40.29 KiB ";
$str3 = "14.3 GB 2.1 51 ";
这里是我的正则表达式,匹配字符串其中“10.503 GB”,“3.4吉布”,“40.29昆明植物”和分别
$regex = '/(\d+\.\d+ [A-Za-z]+[^\s])/';
preg_match_all($regex, $str1, $out1);
preg_match_all($regex, $str2, $out2);
preg_match_all($regex, $str3, $out3);
“14.3 GB”所以,问题是,我怎么能更换不匹配的与用户自定义字符我的正则表达式匹配非字符?示例如下:
$char = 'A'; // assume this is user input
$str1 = " 10.503 GB 3.4 GiB ";
$str2 = " 40.29 KiB ";
$str3 = "14.3 GB 2.1 51 ";
/* preg_replace (or another preg_* magic here */
所以最后一个字符串将
$str1 = "AAAAA10.503 GBAA3.4 GiBAAA";
$str2 = "AA40.29 KiBAAAA";
$str3 = "14.3 GBAAAAAAAAAAAAA";
我知道在不使用的preg_replace的解决方案,而只是假装的preg_replace是需要在这里(或其他参看preg_ *如果你喜欢)
所以这可能吗?如果是这样,我该怎么做到这一点?
如果不是PHP,您还需要支持哪种引擎?我想这个问题是回答。只有Boost可以通过条件替换模式正确地完成这项工作,其他人将产生非精确的输出(在每次不匹配后有一个额外的'A')。看看另一个[PHP正则表达式演示](https://regex101.com/r/dO5aX0/2)。 –
@Casimir et Hippolyte给了我的问题一个完美的答案:)也感谢stribizhev的信息! –