包含“ XYZ”且不以冒号开头的匹配词

亚当

我正在寻找与包含XYZ但不以冒号开头的任何单词匹配的正则表达式模式:

例如,我想从匹配This isXYZ a :exampleXYZaisXYZ

我的第一个想法是使用此正则表达式模式:

/(?<!\:[^\s\r\t\n])XYZ/

基本上,向后看是负面的,以确保事先没有空白就不会冒号。但是,这不起作用,因为后置断言必须为固定长度

编辑:我也想获得utf8支持。

nice_dev

您可以使用如下所示的正则表达式:

/\b((?<!:)\w*XYZ\w*)\b/ui
  • \b 之前和之后是为了匹配单词边界。

  • 在中((?<!:)\w*XYZ\w*),我们检查其中是否有任何单词,XYZ且其前面有零个或多个字符,其后有零个或多个字符。借助负向后看(?<!:),我们确保它的前面没有:

  • @unclexo在评论中所提到的,您可以u在末尾添加修饰符以支持UTF-8序列匹配。有关更多信息,请参见此处

  • 您也可以添加i不区分大小写匹配标志。

片段:

<?php

$tests = [
        'This isXYZ a :exampleXYZa',
        'isXYZ a :exampleXYZa abcXYZ',
        'isXYZ a :exampleXYZXYZa  abcXYZ',
        'XYZ',
        'XYZjdhf',
        'This isXYZ a example:XYZa',
        'äöüéèXYZ :äöüéèXYZäöüéè'
    ];

foreach($tests as $test){
    if(preg_match_all('/\b((?<!:)\w*XYZ\w*)\b/ui',$test,$matches)){
        print_r($matches[0]);
    }
}

演示: https //3v4l.org/Y8SMj

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式匹配不以空格开头,包含或结尾,并且不为空字符串

来自分类Dev

Python正则表达式可匹配仅包含字母数字,'-'和'_'且不以任何特殊字符开头或结尾的字符的字符串

来自分类Dev

sed 命令删除包含超过 10 个字符且不以 91 开头的行

来自分类Dev

查找包含但不以开头的文件夹。(点)

来自分类Dev

解析包含冒号的xml

来自分类Dev

从以///开头并包含冒号的Path中读取文本文件

来自分类Dev

开头包含'['的字符串错误匹配

来自分类Dev

开头包含'['的字符串的错误匹配

来自分类Dev

搜索遵循“(/(?:[a-zA-Z0-9 _-] + /?)*)”且不以“ / xyz”开头的正则表达式

来自分类Dev

jQuery使用包含多个匹配条件的包含

来自分类Dev

获取元素的 id,包含冒号

来自分类Dev

正则表达式包含点的匹配词

来自分类Dev

路径包含匹配项

来自分类Dev

WHERE栏包含单个词

来自分类Dev

匹配不以开头的地方

来自分类Dev

匹配不以&开头的单词

来自分类Dev

删除不以特定单词开头/包含特定单词的行

来自分类Dev

确保字符串不包含http也不以正斜杠开头

来自分类Dev

Selenium ide包含或以...开头

来自分类Dev

一个正则表达式来匹配不以...开头且不以...结尾的字符串

来自分类Dev

路由模板不能以'/'或>'〜'字符开头,并且不能包含'?' 特点

来自分类Dev

仅允许数字并且可以“包含”斜杠,并且不得以斜杠开头或结尾

来自分类Dev

如何匹配包含lvars的地图?

来自分类Dev

包含sed括号的匹配模式

来自分类Dev

包含项目对中的匹配项

来自分类Dev

包含不匹配记录的联接

来自分类Dev

LINQ完全包含匹配项

来自分类Dev

序列不包含匹配元素

来自分类Dev

编写包含匹配正文的宏

Related 相关文章

  1. 1

    正则表达式匹配不以空格开头,包含或结尾,并且不为空字符串

  2. 2

    Python正则表达式可匹配仅包含字母数字,'-'和'_'且不以任何特殊字符开头或结尾的字符的字符串

  3. 3

    sed 命令删除包含超过 10 个字符且不以 91 开头的行

  4. 4

    查找包含但不以开头的文件夹。(点)

  5. 5

    解析包含冒号的xml

  6. 6

    从以///开头并包含冒号的Path中读取文本文件

  7. 7

    开头包含'['的字符串错误匹配

  8. 8

    开头包含'['的字符串的错误匹配

  9. 9

    搜索遵循“(/(?:[a-zA-Z0-9 _-] + /?)*)”且不以“ / xyz”开头的正则表达式

  10. 10

    jQuery使用包含多个匹配条件的包含

  11. 11

    获取元素的 id,包含冒号

  12. 12

    正则表达式包含点的匹配词

  13. 13

    路径包含匹配项

  14. 14

    WHERE栏包含单个词

  15. 15

    匹配不以开头的地方

  16. 16

    匹配不以&开头的单词

  17. 17

    删除不以特定单词开头/包含特定单词的行

  18. 18

    确保字符串不包含http也不以正斜杠开头

  19. 19

    Selenium ide包含或以...开头

  20. 20

    一个正则表达式来匹配不以...开头且不以...结尾的字符串

  21. 21

    路由模板不能以'/'或>'〜'字符开头,并且不能包含'?' 特点

  22. 22

    仅允许数字并且可以“包含”斜杠,并且不得以斜杠开头或结尾

  23. 23

    如何匹配包含lvars的地图?

  24. 24

    包含sed括号的匹配模式

  25. 25

    包含项目对中的匹配项

  26. 26

    包含不匹配记录的联接

  27. 27

    LINQ完全包含匹配项

  28. 28

    序列不包含匹配元素

  29. 29

    编写包含匹配正文的宏

热门标签

归档