【问题标题】:Find a specific character in php在php中查找特定字符
【发布时间】:2014-03-05 15:06:36
【问题描述】:

如何从 php 中的字符串中找到特定字符 a 而不是 aa 或 ab ? 我想用这个代码

$c=strpos($a, 'a') === 0);
$cr=strpos($a, 'ar') === 0);
if ($c == true) {echo "This is c";}
else if ($cr == true) {echo "This is cr";}

但不是这个

$cr=strpos($a, 'ar') === 0);
$c=strpos($a, 'a') === 0);
if ($cr == true) {echo "This is cr"; }
else if ($c == true) {echo "This is c"; }

这也无法正常工作

$c = strpos($a, 'a'); $cr = strpos($a, 'ar');

if (substr($a, $c+1, 1) != 'a') {echo "found a!"; } 回显 else if (substr($a, $c+1, 1) != 'ar') {echo "found ar!"; } 这也呼应了一个 not ar

【问题讨论】:

  • 尽管我不想这么说,但正则表达式 (preg) 可能是您最好的选择。
  • 使用正则表达式来完成这项工作
  • $c = strpos($a, 'a'); if (substr($a, $c+1, 1) != 'a') { found it! }

标签: php


【解决方案1】:

考虑使用preg_match("/(?<!a)a(?![ab])/",$a,$match,PREG_OFFSET_CAPTURE)

如果这返回1,那么有一个a 不是aaab(注意需要后向查看,否则aa 中的第二个a 将匹配)。

此外,您可以使用$match[0][1] 查看您的匹配项在字符串中的哪个位置。

【讨论】:

  • 这不也适用于像\ba\b 这样的简单单词边界吗?
  • @sofl 不是。如果要匹配ac怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多