javascript - PHP 或 Javascript - 查找特定字符串

标签 javascript php regex

查找特定字符串相对容易,但我不确定从哪里开始。我需要提取一个每次都不同但具有相似特征的字符串。

以下是我需要在段落中找到的一些示例字符串,无论是在开头、结尾还是中间的某个位置。

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/

相关文章:

PHP 将多张表中的数据导出到 CSV

php到mysql数据检索

php - 如何从多个字段构建地址标签

python - 为什么 Python 中的 re.sub 在这个测试用例上不能正常工作?

javascript - 我如何做一个数组组并对其进行计数,就像在 MySQL 中按给定列 id 分组一样?

使用 Rails Turbolinks 重新加载时,Javascript 无法识别 FullCalendar 函数

javascript - 无法在phonegap中将文件上传到Amazon S3

javascript - 将值从子窗口传递到父窗口

regex - Vim 正则表达式仅替换日期时间

javascript - 正则表达式在字符串 javascript 中的每个匹配项后添加文本