繁体   English   中英

尝试对超过 22 个字符的字符串进行正则表达式

[英]Trying to regex for strings longer than 22 characters

我有一个很长的数据数组,我需要快速浏览它并确保所有名称都不超过 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'容器中。

这将匹配“至少 22 个任意字符”

.{22,}

正则表达式将是:

/'name'=>'[^']{23,}?'/i

这将匹配具有 23 个字符或更长的“名称”的任何行。

我无法抗拒使用好的 ol' strlen

foreach ($profiles as $id => $data) {
    if (strlen($data['name']) >= 22)
        unset($profiles[$id]);
}

此正则表达式将匹配长度超过 22 个字符的字符串

/.{23,}/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM