正则表达式匹配从字符串开头到第一个逗号的大写字母、空格、符号和撇号


regex matches uppercase letters, spaces, & symbol and apostrophes from begining of string to first comma

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

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

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

您需要

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

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

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

图案详情

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