我有很长的数据,我需要快速浏览它并确保名称都不超过22个字符。我知道我可以在显示器侧截断它,但我宁愿用一个合适的解决方案来解决它,只是删除它们。)
这是我的样本
$profiles[257] = array('name'=>'FedupKissingFrogs', 'age'=>27, 'sex'=>'F', 'location'=>'XXXXXXXXXX');
$profiles[260] = array('name'=>'Lil_Greta_90', 'age'=>20, 'sex'=>'F', 'location'=>'XXXXXXXXXX');
$profiles[262] = array('name'=>'lOOkfOrme86', 'age'=>24, 'sex'=>'F', 'location'=>'XXXXXXXXXX');
$profiles[259] = array('name'=>'youvefoundME', 'age'=>21, 'sex'=>'F', 'location'=>'XXXXXXXXXX');
这是我到目前为止提出的正则表达式,它似乎根本不起作用
'[A-Za-z]{20,40}'
我的计划是我可以使用正则表达式标记行,然后我可以从IDE中删除它们。没有编程允许;)
- 编辑 -
感谢所有回复!这背后的想法是一种快速,自动的方式来只扫描一个包含数组的平面PHP文件,看看是否所有短于22个字符的名称,作为一个比这更长的名称将打破布局,我被要求删除它们。我想在我的IDE中搜索并删除这些行。
匹配字符并不重要,任何字符都是允许的,甚至是空格,\ /〜和*等。我看起来更匹配字符串的长度,但包含在=>'$name'
容器中。
答案 0 :(得分:34)
这将匹配“至少22个任何字符”
.{22,}
答案 1 :(得分:23)
正则表达式将是:
/'name'=>'[^']{23,}?'/i
这将匹配任何包含23个字符或更长的“名称”的行。
答案 2 :(得分:2)
我无法抗拒使用好的'strlen
。
foreach ($profiles as $id => $data) {
if (strlen($data['name']) >= 22)
unset($profiles[$id]);
}
答案 3 :(得分:-1)
此正则表达式将匹配长度超过22个字符的字符串
/.{23,}/