尝试使用超过22个字符的字符串的正则表达式

Dav*_*ell 15 regex

我有一个非常长的数据,我需要快速通过它,并确保没有任何名称超过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');
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止提出的正则表达式,它似乎根本不起作用

'[A-Za-z]{20,40}'
Run Code Online (Sandbox Code Playgroud)

我的计划是我可以使用正则表达式标记行,然后我可以从我的IDE中删除它们.没有编程允许;)

- 编辑 -

感谢所有的答复!这背后的想法是一种快速,自动的方式来只扫描一个包含数组的平面PHP文件,看看是否所有短于22个字符的名称,作为一个比这更长的名称将打破布局,我被要求删除它们.我想在我的IDE中搜索并删除这些行.

匹配字符并不重要,任何字符都是允许的,甚至是空格,\ /〜和*等.我看起来更匹配字符串的长度但包含在=>'$name'容器中.

vmg*_*vmg 36

这将匹配"至少22个任何字符"

.{22,}
Run Code Online (Sandbox Code Playgroud)

  • 为什么?你试过这个吗?它应该逐行匹配 (4认同)
  • +1与Lazarus的解决方案相反,这很好用. (2认同)
  • 这将是最好的答案 (2认同)

Laz*_*rus 25

正则表达式将是:

/'name'=>'[^']{23,}?'/i
Run Code Online (Sandbox Code Playgroud)

这将匹配具有23个字符或更长的"名称"的任何行.