【问题标题】:regex matches uppercase letters, spaces, & symbol and apostrophes from begining of string to first comma正则表达式匹配从字符串开头到第一个逗号的大写字母、空格、& 符号和撇号
【发布时间】:2016-07-11 17:22:00
【问题描述】:

我正在尝试这个正则表达式,但它与大写一起以某种方式匹配小写。

preg_match("/^([A-Z&\s\']+),/i", $line, $match);

任何想法我的错误在哪里? 谢谢!

【问题讨论】:

  • 你能举例说明你想要匹配什么以及它是如何失败的
  • 无法重现...您能提供屏幕截图和/或示例吗?
  • php 的其余部分在哪里,你有\i 标志吗?
  • 我正在尝试将大写单词与从字符串开头到第一个逗号的符号进行匹配。但它也匹配小写单词。
  • 为我工作...我认为您想删除 /i 使其不区分大小写。

标签: php regex uppercase


【解决方案1】:

您需要删除不区分大小写的修饰符/i

preg_match('/^([A-Z&\s\']+),/', $line, $match);
                             ^

否则,[A-Z] 范围匹配 [a-z][A-Z] 范围。

模式详情

  • ^ - 字符串开头
  • ([A-Z&\s\']+) - 第 1 组捕获 1 个或多个大写 ASCII 字母 (A-Z)、文字 &、空格 (\s) 或文字 '
  • , - 逗号

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2022-06-18
    • 2019-05-28
    相关资源
    最近更新 更多