查找特定字符串相对容易,但我不确定从哪里开始。我需要提取一个每次都不同但具有相似特征的字符串。
以下是我需要在段落中找到的一些示例字符串,无论是在开头、结尾还是中间的某个位置。
7b.9t.7iv.4x
4ir.4i.5i.6t
7ix.7t.4t.0z
如您所见,字符串始终以数字开头,后面最多有 2 个字符,并且始终包含 4 个由点分隔的八位字节。
如果您需要更多详细信息,请告诉我。
编辑:
感谢下面的答案,我想出了这个,虽然不太漂亮,但满足了我的需要。
$body="test 1f.9t.7iv.4x test 1a.9a.7ab.4xa test ";
$var=preg_match_all("([0-9][a-z]{1,2}\.[0-9][a-z]{1,2}\.[0-9][a-z]{1,2}\.[0-9][a-z]{1,2})",$body,$matches);
$count=count($matches[0]);
$stack = array();
while($count > 0){
$count--;
array_push($stack, "<span id='ip_".$matches[0][$count]."'>".$matches[0][$count]."</span>");
}
$stack=array_reverse($stack);
$body=str_replace($matches[0],$stack,$body);
最佳答案
您可以使用正则表达式。
类似这样的东西可以帮助您入门。由于重复,可能有更好的匹配方式,但是......
([0-9][a-z]{1,2}\.[0-9][a-z]{1,2}\.[0-9][a-z]{1,2}\.[0-9][a-z]{1,2})
(
启动捕获组
[0-9]
匹配 0 到 9 的任何字符
[a-z]
匹配任意字符[a-z]
{1,2}
但只匹配前1或2次
\.
匹配文字 .
\
需要作为逃生,因为 .
是一个特殊字符
)
结束捕获组
PHP 和 JavaScript 都允许使用正则表达式。
为了获得更好的视觉表现,您可以查看此工具:http://www.debuggex.com/
如果您需要每个八位字节本身(作为匹配),您可以添加更多括号 ()
围绕每个[0-9][a-z]{1,2}
然后将单独存储这些八位字节。
另请注意 \d
与 [0-9]
相同但我更喜欢后者,因为我发现它更具可读性。
关于javascript - PHP 或 Javascript - 查找特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259079/