首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取正则Ex值?字面量

获取正则Ex值?字面量
EN

Stack Overflow用户
提问于 2013-01-30 10:18:33
回答 4查看 61关注 0票数 0

所以我有这个正则表达式:

代码语言:javascript
复制
$text = '"sadfsafsafsafsaf"';
$text2 = '"sadfsafsafsafsaf';
$matches = array();

preg_match('/"(.+)"?/', $text, $matches);

在本例中,我打算只捕获不带引号的sadfsafsafsafsaf,因此,在preg_match()中使用$text$text2的两种情况下,我都希望$matches[1]中匹配的输出仅为sadfsafsafsafsaf

然而,当我使用$text时,匹配值将改为sadfsafsafsafsaf (即.最后还会有一个引号)

有没有办法改变我的正则表达式,使它在两种情况下都是sadfsafsafsafsaf?

注意:在有人问为什么不直接使用trim()之前……这是因为我只想去掉第一个外引号。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-30 10:20:41

[^"]+将捕获任意数量的相邻非引号。

票数 0
EN

Stack Overflow用户

发布于 2013-01-30 10:20:55

尝试将.+更改为.*,并在模式的末尾添加一个$。您遇到的问题是.+会匹配它能匹配的所有内容,包括尾随引号。随后的子句"?将被忽略,因为根据问号,它是可选的。

使用[^"]+也可以,因为这意味着“任何不是双引号的非空字符串”。

票数 0
EN

Stack Overflow用户

发布于 2013-01-30 10:21:36

如果要查找文字问号(或正则表达式引擎专用的任何其他符号),则必须转义字符:\?

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

https://stackoverflow.com/questions/14595613

复制
相关文章

相似问题

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