当前位置: 首页 > 知识库问答 >
问题:

正则表达式和preg_match

璩涛
2023-03-14

我想做一个正则表达式来匹配这些字符串之一:添加删除编辑读取

我的正则表达式只能接受以下字符串(而不是其他单词):

    add

    delete 

    edit

    read

,

这是我当前的正则表达式,但它不能按预期工作:

#(add|delete|read|edit),#

编辑

如果在我的字符串中它们是:

read
delete
add
edit
,

如果它们是其他单词或符号,则返回 false。

谢谢大家。

共有3个答案

易衡
2023-03-14
^(?:add|delete|read|edit)$

顺便问一下,那些散列在那里做什么?

演示在这里

http://regex101.com/r/zX2yU8

单于扬
2023-03-14

试试这个:

^(?:(?:add|delete|read|edit)|,)$

正则表达式101演示

我使用一个组首先将选择限制在您的单个字符串上,然后是锚^$以确保您正在测试它的字符串中没有其他内容。

$words = array('add', 'delete', ',', 'reading', 'edit', 'read', 'gedit');

foreach ($words as $word) {
    if (preg_match('#^(?:(?:add|delete|read|edit)|,)$#', $word)) {
        echo "$word: Matched!\n";
    } else {
        echo "$word: Not matched!\n";
    }
}

ideone演示

范鸿
2023-03-14

似乎你犯了一个小错误。这种模式基本上是可行的。示例:

$str = <<<EOF
add, delete foo edit read bar add
hello world
EOF;

preg_match_all('#add|delete|read|edit|,#', $str, $matches);
var_dump($matches);

输出:

array(1) {
  [0] =>
  array(6) {
    [0] =>
    string(3) "add"
    [1] =>
    string(1) ","
    [2] =>
    string(6) "delete"
    [3] =>
    string(4) "edit"
    [4] =>
    string(4) "read"
    [5] =>
    string(3) "add"
  }
}
 类似资料:
  • 问题内容: 我的问题是:在GWT中使用正则表达式是否有很好的解决方案? 例如,我对String.split(regex)的使用不满意。GWT将代码转换为JS,然后将正则表达式用作JS正则表达式。但是我不能使用Java Matcher或Java Pattern之类的东西。但是我需要这些来进行组匹配。 有没有可能或图书馆? 我尝试了Jakarta Regexp,但是还有其他问题,因为GWT不能模拟该库

  • 问题内容: 我有一个脚本,可以分析电视剧集的文件名(例如show.name.s01e02.avi),获取剧集的名称(从www.thetvdb.com API),然后自动将其重命名为更好的名称(显示名-[01x02 ] .avi) 该脚本可以正常工作,直到您尝试在具有Unicode显示名称的文件上使用该脚本为止(我从未真正考虑过这一点,因为我拥有的所有文件都是英文的,所以大部分都属于) 如何允许正则

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 在 OpenResty 中,同时存在两套正则表达式规范:Lua 语言的规范和 ngx.re.* 的规范,即使您对 Lua 语言中的规范非常熟悉,我们仍不建议使用 Lua 中的正则表达式。一是因为 Lua 中正则表达式的性能并不如 ngx.re.* 中的正则表达式优秀;二是 Lua 中的正则表达式并不符合 POSIX 规范,而 ngx.re.* 中实现的是标准的 POSIX 规范,后者明显更具备通用

  • 一、概述 二、匹配单个字符 三、匹配一组字符 四、使用元字符 五、重复匹配 六、位置匹配 七、使用子表达式 八、回溯引用 九、前后查找 十、嵌入条件 参考资料 一、概述 正则表达式用于文本内容的查找和替换。 正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或者软件。 正则表达式在线工具 二、匹配单个字符 . 可以用来匹配任何的单个字符,但是在绝大多数实现里面,不能匹配换行符; . 是元字

  • 这部分内容可以说是学习shell脚本之前必学的内容。如果你这部分内容学的越好,那么你的shell脚本编写能力就会越强。所以不要嫌这部分内容啰嗦,也不要怕麻烦,要用心学习。一定要多加练习,练习多了就能熟练掌握了。 在计算机科学中,正则表达式是这样解释的:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模