一个问题正则表达式PHP

在起始行中计算字符'_'</ p>

示例:</ p >

  subject ='_ abb_abc';  //返回1 
or
subject ='__ abcd_abc'; //返回2
or
subject ='___ abcd_abc'; //返回3
</ code> </ pre>

每个人都帮助我〜
我使用PHP </ p>
</ div>

展开原文

原文

Count character '_' in start line

example :

subject = '_abcd_abc';   // return 1
or 
subject = '__abcd_abc';  // return 2
or 
subject = '___abcd_abc';  // return 3

everyone help me ~ I use PHP

douwu0335
douwu0335 谢谢Andy和Gumbo
大约 10 年之前 回复
dqu92800
dqu92800 接受一些答案。
大约 10 年之前 回复

2个回答



试试这个:</ p>

  return preg_match('/ ^ _ + /',  $ str,$ match)?  strlen($ match [0]):0; 
</ code> </ pre>

如果 preg_match </ code>找到匹配项, $ match [0] < / code>将包含该匹配, strlen($ match [0])</ code>返回匹配的长度; 否则表达式将返回 0 </ code>。</ p>
</ div>

展开原文

原文

Try this:

return preg_match('/^_+/', $str, $match) ? strlen($match[0]) : 0;

If preg_match finds a match, $match[0] will contain that match and strlen($match[0]) returns the length of the match; otherwise the expression will return 0.

doukan3504
doukan3504 是啊。 我只是没有意识到他们追求的是什么。
大约 10 年之前 回复
doudou_0624
「已注销」 Ajtai:显然他/她只是在寻找领先角色的数量。
大约 10 年之前 回复
douruyun8153
douruyun8153 哎呀,我以为他想要整个字符串中使用的下划线总数。 我明白,没关系。
大约 10 年之前 回复
drtppp75155
drtppp75155 Ajtai:那么?
大约 10 年之前 回复
douganggu4392
douganggu4392 preg_match在找到第一个匹配项后停止搜索。
大约 10 年之前 回复



如果您确定字符串的开头包含 _ </ code>,则只需即可 strspn()</ code>:</ p>

  echo strspn('___ abcd_abc','_'); 
// - &gt; 3
</ code> </ pre>

如果可能没有前导下划线,您仍然可以在没有正则表达式的情况下使用 strlen </ code>和 ltrim </ code>:</ p>

  strlen($ str) -  strlen(ltrim($ str,“_”)); 
</ code> </ pre>

这会计算字符串长度,然后减去左边没有下划线的字符串长度,结果就是下划线的数量。</ p>

展开原文

原文

If you are sure the start of the string contains _, you can do this with just strspn():

echo strspn('___abcd_abc',  '_');
// -> 3

If there might be no leading underscores, you can still do this without a regex using strlen and ltrim:

strlen($str) - strlen(ltrim($str, "_"));

This counts the string length, then subtracts the string length without the underscores on the left, the result being the number of underscores.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问