php - 正则表达式选择某个单词后跟整数或小数?

标签 php regex

我需要一个正则表达式来检测给定字符串中的短语 Figure 1.5:。此外,我打算在 PHP preg_replace() 函数中使用此表达式。

这里还有一些例子:

  • ...已给出。 图 2.1: 显示...
  • ...已给出。 图 3: 显示...
  • ...已给出。 图 1.16: 显示...
  • ...已给出。 图 0.4 显示...
  • ...已给出。 图 5.1: 显示...

凭借我有限的 Regex 知识,我能够创建这个:

/\w图\d*\.?\d*/g

但这还没有开始处理所有可能发生的排列。

如果您有任何建议,我将不胜感激。

最佳答案

这里有几点:

  • 您可能在开头使用 \w 作为单词边界。事实上,\w 匹配字母、数字或 _ 并且实际上要求此字符位于准确位置。但是,Figure 之前没有单词 char,因此您需要删除 \w 或替换为 \b
  • preg_replace 默认替换所有非重叠出现,你不需要 g 修饰符
  • \d*\.?\d* 在这里没问题,但由于您想匹配任何数字后跟零次或多次出现的 . 和数字,您可以使用更具体的模式,如 \d+(?:\.\d+)*.

你可以使用

preg_replace('/Figure \d+(?:\.\d+)*/', '', $string)

参见 regex demo .

详细信息:

  • - 一个字符串
  • - 一个空格(替换为 \s+ 以匹配任何一个或多个空格,并考虑在最后一个 之后添加 u 标志/ 如果你需要找到所有的 Unicode 空格)
  • \d+ - 一个或多个数字
  • (?:\.\d+)* - . 和一位或多位数字出现零次或多次。

关于php - 正则表达式选择某个单词后跟整数或小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66781954/

相关文章:

php - 如何在 PHP/XAMPP 中启用 cURL

javascript - 如何匹配href中的 '/#'

regex - 如何在Swift中提取 "---"之间的多行字符串

java - 正则表达式第一个字符不匹配

php - 阻止不良内容的设计模式

php simplexml xpath按属性匹配元素并按文本值匹配子元素

php - 具有多个数据库的 Yii 迁移 - 指定 DB?

php - Symfony2 在一个表单中同一类的多个实体

javascript - 用数字和特殊字符替换数字

php - 匹配注册商标符号的正则表达式