gpt4 book ai didi

php - 正向后视中带有字符集的正则表达式,这可能吗?

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:42 24 4
gpt4 key购买 nike

我只需要在“listing”之后匹配“name”,当然这些词可以是任何 url 目录或页面。

mydomain.com/listing/name

所以我唯一可以“REGuest”(请求)的是那里的某个父目录。换句话说,我想匹配“位置”,即域之后第二位的任何内容。

我正在尝试类似的东西

(?<=mydomain\.com/[^/\?&]+/)[^/\?&]+(?:/)?

但是字符集在正后视中不起作用,至少它被设置为只匹配一个字符。一旦我尝试匹配一个以外的匹配项(例如用 +、? 或 * 修改它),它就会停止工作。

我显然错过了积极的回顾语法,它似乎不适合我正在尝试的东西。

如何匹配二级文件名?

谢谢。

最佳答案

Regular-expressions.info指出

The bad news is that most regex flavors do not allow you to use just any regex inside a lookbehind, because they cannot apply a regular expression backwards. Therefore, the regular expression engine needs to be able to figure out how many steps to step back before checking the lookbehind...

(进一步阅读,他们甚至提到了 Perl、Python 和 Java。)

我认为量词可能是问题所在。我找到了 this在 stackoverflow 上并短暂地飞过它。

是否可以只匹配整个路径,并为二级文件名使用一个组:

mydomain\.com\/[^\/\?&]+\/([^\/\?&]+)(?:\/)?

(注意:为了我的测试,我不得不转义/......)

结果会是这样的:

Array
(
[0] => mydomain.com/listing/name
[1] => name
)

现在,因为我不知道你的问题的上下文,我只是假设你能够对结果进行后处理并从结果中获得第 1 组(索引 1)。如果不是,很遗憾我不知道...

关于php - 正向后视中带有字符集的正则表达式,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11689496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com