首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把两个简单的正则表达式变成一个

问把两个简单的正则表达式变成一个
EN

Stack Overflow用户
提问于 2014-07-04 16:06:55
回答 2查看 39关注 0票数 1

我正在尝试做一个正则表达式,它将在.txt后面,然后在"-“后面,得到第一个数字.在这个例子中,它将是1。

代码语言:javascript
复制
$record_pattern = '/.txt.+/';
preg_match($record_pattern, $decklist, $record);
print_r($record);

.txt?n=chihoi%20%283-1%29

我想把它写成一个表达式,但似乎只能写成两个表达式。这是第一次与regex一起工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-04 16:12:44

你的判断力是,

代码语言:javascript
复制
\.txt[^-]*-\K\d

你不需要任何团体。它只匹配.txt和文字-。由于正则表达式中的\K,它丢弃了以前匹配的字符。在我们的例子中,它丢弃了.txt?n=chihoi%20%283-字符串。然后,它又开始匹配第一个数字,就在后面的-

演示

你的PHP代码是,

代码语言:javascript
复制
<?php
$mystring = ".txt?n=chihoi%20%283-1%29";
$regex = '~\.txt[^-]*-\K\d~';
if (preg_match($regex, $mystring, $m)) {
    $yourmatch = $m[0]; 
    echo $yourmatch;
    }
?> //=> 1
票数 1
EN

Stack Overflow用户

发布于 2014-07-04 16:09:54

你可以用这个:

代码语言:javascript
复制
$record_pattern = '/\.txt.+-(\d)/';

现在,第一个组包含您想要的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24577975

复制
相关文章

相似问题

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