Php 正则表达式:如何在{}之间找到数字和字符
我有一个类似这样的字符串:Php 正则表达式:如何在{}之间找到数字和字符,php,regex,Php,Regex,我有一个类似这样的字符串:$str='&%\\'a4{=s{sa*}7s*&$db{abc654d3ws67}d(*$%\$c6'^*@“~\'a4\” 我需要从该字符串中找到与{abc654d3ws67}不同的$needle,并通过bin2hex($needle)预先放置它 示例:bin2hex('#')查找{的每个匹配项,后跟任意数量的字母或数字,后跟一个} $str = preg_replace_callback( '/\{([^a-z0-9]+)\}/i', function( $mat
$str='&%\\'a4{=s{sa*}7s*&$db{abc654d3ws67}d(*$%\$c6'^*@“~\'a4\”
我需要从该字符串中找到与{abc654d3ws67}
不同的$needle
,并通过bin2hex($needle)
预先放置它
示例:
bin2hex('#')
查找{
的每个匹配项,后跟任意数量的字母或数字,后跟一个}
$str = preg_replace_callback( '/\{([^a-z0-9]+)\}/i', function( $match) {
return bin2hex( $match[1]);
}, $str);
查找所有出现的
{
,后跟任意数量的字母或数字,后跟}
$str = preg_replace_callback( '/\{([^a-z0-9]+)\}/i', function( $match) {
return bin2hex( $match[1]);
}, $str);
根据措辞,这听起来像是你在寻找的:
<?php
$str='&%#^*@\"~ \'a4{=s{sa*}7s*&$db{abc654d3ws67}d(*$%#$c6\'#^*@"~ \'a4\"';
$pattern = '!^(.+)({abc654d3ws67})(.+)$!';
$tstring = preg_match($pattern,$str,$matches);
$newstring = bin2hex($matches[1]).$matches[2].bin2hex($matches[3]);
echo "<pre>$newstring</pre>";
?>
输出为:
2625235e2a405c227e202761347b3d737b73612a7d37732a26246462{abc654d3ws67}64282A24252324633627235E2A402227E202761345C22
旧代码抛出了一个T_LNUMBER警告
仅针对十六进制更新:
输出为:
2625235E2A405C227E202761347B3D737B73612A7D37732A262462ABC6543WS6764282A24252324633627235E2A402227E202761345C22
根据措辞,这听起来像是你在寻找的:
<?php
$str='&%#^*@\"~ \'a4{=s{sa*}7s*&$db{abc654d3ws67}d(*$%#$c6\'#^*@"~ \'a4\"';
$pattern = '!^(.+)({abc654d3ws67})(.+)$!';
$tstring = preg_match($pattern,$str,$matches);
$newstring = bin2hex($matches[1]).$matches[2].bin2hex($matches[3]);
echo "<pre>$newstring</pre>";
?>
输出为:
2625235e2a405c227e202761347b3d737b73612a7d37732a26246462{abc654d3ws67}64282A24252324633627235E2A402227E202761345C22
旧代码抛出了一个T_LNUMBER警告
仅针对十六进制更新:
输出为:
2625235E2A405C227E202761347B3D737B73612A7D37732A262462ABC6543WS6764282A24252324633627235E2A402227E202761345C22
你有试过什么吗?我试过
explode('{')
和explode('}')
但这似乎是个坏方法所以{abc654d3ws67}
变成了#?我想我不明白这个问题。{abc654d3ws67}
在字符串中只出现一次?不,它不会出现多次。你有试过什么吗?我试过explode('{')
和explode('}')
但这似乎是一种不好的方法所以{abc654d3ws67}
变成了#?我想我不明白这个问题。是不是{abc654d3ws67}
在字符串中只出现一次?不,它不会出现多次。我想我们需要在某个地方加上“!”,因为我想找到不喜欢的{abc654d3ws67}
,无论如何谢谢!什么是“不喜欢”“?如果你想排除字母和数字,我可以编辑我的答案。很抱歉我的英语不好!是的,我想排除字母和数字以及{
和}
中的{abc654d3ws67}”
也是。再试一次,我编辑了我的答案并否定了字符组。@HamZa DzCyberDeV,在本例中,我的字符串中有大括号。我找到了另一个不包含{abc654d3ws67}
的部分。很抱歉,我的英语又不好!我认为我们需要在某个地方放上“!”,因为我想找到与不同的内容{abc654d3ws67}
,谢谢!什么是“不喜欢”?如果你想排除字母和数字,我可以编辑我的答案。很抱歉我的英语不好!是的,我想排除{abc654d3ws67}中的字母和数字以及{/code>和}
也是。再试一次,我编辑了我的答案并否定了字符组。@HamZa DzCyberDeV,在这种情况下,我的字符串中有大括号。我找到了另一个不包含{abc654d3ws67}
的部分。很抱歉,我的英语又不好!谢谢你的帮助!我会尝试的!谢谢你的帮助!我会尝试的!