首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用backreference php preg_match_all

使用backreference php preg_match_all
EN

Stack Overflow用户
提问于 2016-02-17 13:09:53
回答 2查看 90关注 0票数 0

我在regex和php方面很新,但是我面临着一个我无法单独处理的问题。

我准备了这个正则表达式来找到以大写字母开头的模式。听起来像是:

  • 捕捉任何模式
  • 以一个或多个大写字母开头
  • 则列表中的一个或多个字母或字符
  • 然后是空格,或标点符号。
  • 我使用一个反向引用来设置--我希望这些模式达到3次: (a-Z-a.A.a.a.?,;1,3)

根据https://regex101.com/r/pB3nY7/2的说法,它的工作方式是javascript regex,而不是php regex。

我已经对其他帖子发了长篇大论,并确保:

  • 我用单引号代替双引号
  • 我在我的php脚本中“保护”了这个\: `#(A-Z a.a:0-Z a:0-9{1,}s-…).?,;1,3)#‘

但它仍然不能与任何以大写字母开头的图案相匹配。

提前感谢您的建议,

致以敬意,

查尔斯

EN

回答 2

Stack Overflow用户

发布于 2016-02-17 13:26:03

我已经在这个网站http://www.phpliveregex.com/上测试过:

代码语言:javascript
复制
(^[A-ZÁÀÂÄÉÈÊËÍÌÎÏÓÒÔÖÚÙÛÜ]{1,}[a-zàáâãäåçèéêëìíîïðòóôõöùúûüýÿ;:«0-9]{1,}[\s-….?,;]{1,1}){1,3}
票数 0
EN

Stack Overflow用户

发布于 2016-02-17 13:39:16

为了更通才,您可以使用unicode属性:

代码语言:javascript
复制
^(\p[Lu}+[\p{Ll};:«0-9]+[\s\p{P}]){1,3}

其中\p[Lu}代表大写字母,\p{Ll}代表小写字母,\p{P}代表标点符号.

代码语言:javascript
复制
preg_match('/^(\p[Lu}+[\p{Ll};:«0-9]+[\s\p{P}]){1,3}/', $string, $match);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35457668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档