问题标签 [pcre]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
12216 浏览

php - 在 PHP 中使用正则表达式找出子域

抱歉,如果这不是一个适合作为堆栈溢出问题的挑战,但我对正则表达式有点陌生。

我的问题是,对于下面的所有示例,返回字符串“token”的正则表达式是什么?

  • token.domain.com
  • token.domain.com/
  • token.domain.com/index.php
  • token.domain.com/folder/index.php
  • token.domain.com/文件夹/子文件夹
  • token.domain.com/folder/subfolder/index.php
  • (编辑后添加)
  • 域名.com
  • domain.com/

我试图在 preg_replace 函数中使用,以便从 $_SERVER['SERVER_NAME'] 变量中找出当前页面的子域。

提前谢谢你,标题

编辑说明:抱歉,混乱和 sebnow ,我编辑了我的问题,我最初的意思是,但忘了写,这将在没有任何子域的情况下工作 - 在这种情况下它会返回一个空刺或 NULL

0 投票
4 回答
521 浏览

php - 使用正则表达式将每个单独的字符匹配为自己的组?

在 PHP 中,我试图将每个字符匹配为自己的组。这将模仿str_split(). 我试过:

我期待类似的东西:

我想使用正则表达式而不是 astr_split()的原因是因为正则表达式将成为另一个正则表达式的基础。

0 投票
2 回答
1514 浏览

sql - 使用 RegExp (PREG) 提取函数参数

考虑以下函数参数(它们已经从函数中提取):

有没有办法使用正则表达式提取参数以获取以下数组输出并去除空格:

我坚持使用这个不够宽松的 RegExp:

0 投票
1 回答
236 浏览

php - php regex:如何匹配此注册表路径?

我对正则表达式不是很好,而且我对这个有点摸不着头脑。我使用 preg_match 得到了以下 php 代码,它应该匹配注册表路径中的所有字符,除了记录号......在这种情况下是“记录??]”:

我得到的错误是:

Parse error: syntax error, unexpected T_IF in C:\Inetpub\wwwroot\xfax\regmatch.php on line5

提前致谢

0 投票
4 回答
432 浏览

regex - Perl 正则表达式:如何抓取相同的部分

我正在为一些游戏创建天梯系统,但遇到了关于氏族基础系统的问题。你看,每个加入的玩家都会被解析并放入玩家表中。像这样:

或者...

所以,我想要的是:我想抓住 CLANTAG,它在同一个地方,并且在那个团队中的每个球员的名字都相同。但是,分隔符可以是从空白到无的任何内容(clan player1、clan player2 或 clanplayer1、clanplayer2)。

关于如何做到这一点的任何想法?

提前致谢。

0 投票
1 回答
25189 浏览

regex - 引号之间匹配的正则表达式,包含转义引号

这本来是我想问的一个问题,但在研究问题的细节时,我找到了解决方案,并认为其他人可能会对它感兴趣。

在 Apache 中,完整的请求用双引号括起来,其中的任何引号总是用反斜杠转义:

我正在尝试构建一个匹配所有不同字段的正则表达式。GET我当前的解决方案总是在/之后的第一个引号处停止POST(实际上我只需要所有值,包括传输的大小):

我想我还会从我的 PHP 源代码中提供我的解决方案,其中包含注释和更好的格式:

在 URL 不包含其他引号的简单情况下使用它可以正常工作:

现在我正试图获得对无、一次或多次出现的支持\",但找不到解决方案。使用 regexpal.com 到目前为止我已经想出了这个:

这里只是更改的部分:

不过,也太贪心了。它吃完所有东西,直到最后一个",它应该只吃到第一个,"前面没有 a \\我还尝试引入在我想要的之前没有的要求",但它仍然吃到字符串的末尾(注意:我必须添加无关\的字符才能在 PHP 中进行这项工作):

但后来它击中了我:*?:如果在任何量词、+、? 或 {} 之后立即使用,则使量词非贪婪(匹配最小次数)

完整的正则表达式:

2009 年 5 月 5 日更新:

由于解析了数百万行,我在正则表达式中发现了一个小缺陷:它在双引号之前包含反斜杠字符的行上中断。换句话说:

将打破正则表达式。Apache 不会记录...\"但总是将反斜杠转义为\\,因此可以安全地假设当双引号前有两个反斜杠字符时。

任何人都知道如何用正则表达式解决这个问题?

有用的资源: developer.mozilla.org和regexpal.com上的 JavaScript Regexp 文档

0 投票
3 回答
3717 浏览

regex - 如何在 Perl 中删除所有带有非单词字符的标记?

我正在尝试提出一个正则表达式来删除所有包含非单词字符的单词。

因此,如果它包含冒号、逗号、数字、括号等,则将其从行中删除,不仅是字符,还有单词。到目前为止我有这个。

不必是完美的,所以用破折号和撇号删除字符串是可以的。

0 投票
2 回答
1977 浏览

php - PHP 验证 youtube 脚本

我有一个网站,允许用户复制和粘贴 youtube 提供的嵌入视频脚本并将其上传到数据库。我希望能够检查此脚本是否是有效的 youtube 脚本,而不仅仅是某人输入的随机文本。我相信这可以通过 preg match 来完成。有任何想法吗?

0 投票
4 回答
23278 浏览

php - 如何替换字符串中的一个或两个连续换行符?

我正在用 PHP 开发一个服务站点,它只显示访问者发布的消息(最好围绕网站的主题)。任何人每小时最多可以发布三条消息。

由于网站只有一页,我想控制每条消息的垂直长度。但是,我确实希望至少部分保留原始消息中的换行符。折衷方案是允许两个换行符,但如果超过两个,则将它们替换为连续两个换行符。Stack Overflow 实现了这一点。

例如:

将更改为

检查换行符的一个棘手方面是它们可能被收集并存储为\r\n\r\n. 我考虑过将所有换行符转换为<br />s using nl2br(),但这似乎没有必要。

我的问题:在 PHP 中使用正则表达式(使用 and 之类的函数preg_match()preg_replace(),我如何检查连续两个以上换行符的实例(它们之间有或没有空格),然后将它们更改为总共两个换行符?

0 投票
1 回答
981 浏览

regex - 匹配奇数个转义符号

我需要匹配 C++ 预处理器语句。现在,预处理器语句可能跨越多行:

这个最后的反斜杠可能会被转义,所以下面的结果是两个单独的行:

问题是如何有效地匹配显式续行。我有以下我认为有效的表达式。基本上,它测试反斜杠的数量是否为奇数。它是否正确?可以更有效地完成吗?

(我使用的是 PHP,所以 PCRE 规则适用,但我会很感激任何正则表达式白话的答案。)