Php 如何否定正则表达式中的特定单词
我有一个字符串,格式为:Php 如何否定正则表达式中的特定单词,php,regex,Php,Regex,我有一个字符串,格式为:关键字/page XXX(以page XXX结尾,可以为空) 关键字是任意字符。斜杠前的所有字符都是关键字。但是关键字可以有斜杠。关键字可以是第XXX页 XXX是任意数字 (第XXX页正在分页) 我想用正则表达式来获取关键字的值。怎么做 例如: 字符串是:I-Like-PHP/page-123/page-456/page-789 =>关键字的值为I-Like-PHP/page-123/page-456 字符串是:I-Like-PHP =>关键字值I-Like-PHP 字符
关键字/page XXX
(以page XXX结尾,可以为空)
关键字是任意字符。斜杠前的所有字符都是关键字。但是关键字可以有斜杠。关键字可以是第XXX页
XXX是任意数字
(第XXX页正在分页)
我想用正则表达式来获取关键字的值。怎么做
例如:
字符串是:I-Like-PHP/page-123/page-456/page-789
=>关键字的值为I-Like-PHP/page-123/page-456
字符串是:I-Like-PHP
=>关键字值I-Like-PHP
字符串是:I-Like-PHP/
=>关键字值I-Like-PHP/
(有斜杠)
字符串是:I-Like-PHP/page-123
=>关键字值I-Like-PHP
字符串为:page-123
=>关键字为第123页
字符串为:page-123/
=>关键字为第123页/
如何仅使用正则表达式获取它?您可以使用此正则表达式,它捕获所有内容,直到尾随的
/page XXX
,或者如果没有分页,则捕获行尾:
^(.*?)(?=\/page-\d+$|$)
您可以使用此正则表达式,它可以捕获所有内容,直到尾随的
/page XXX
,如果没有分页,则捕获行尾:
^(.*?)(?=\/page-\d+$|$)
如果您只需要关键字,请尝试此选项
$str = 'I-Like-PHP/page-123/page-456/page-789';
preg_match('([^/]+)',$str,$matches);
print_r($matches[0]);die;
这只会给你
I-Like-PHP
请尝试这个,如果你只需要关键字
$str = 'I-Like-PHP/page-123/page-456/page-789';
preg_match('([^/]+)',$str,$matches);
print_r($matches[0]);die;
这只会给你
I-Like-PHP
第一个斜杠前的第一个值始终是关键字?您是否尝试过php中的stripslashes函数。它可以删除斜杠$arr=explode(“/”,$string)$first=$arr[0];explode返回一个数组,第一部分将保存在数组中。应用多个正则表达式有什么问题?它可以更有效,更容易阅读,稍后。你是什么意思?关键字是任何字符。斜杠前的所有字符都是关键字。但是关键字可以有斜杠。关键字可以是第XXX页,它要求只使用正则表达式,而不是在第一个斜杠始终是关键字之前使用PHP解析stringfirst值?您尝试过PHP中的stripslashes函数吗。它可以删除斜杠$arr=explode(“/”,$string)$first=$arr[0];explode返回一个数组,第一部分将保存在数组中。应用多个正则表达式有什么问题?它可以更有效,更容易阅读,稍后。你是什么意思?关键字是任何字符。斜杠前的所有字符都是关键字。但是关键字可以有斜杠。关键字可以是页面XXX,它只需要使用正则表达式,而不需要使用PHP来解析stringHi,关键字是任何字符。斜杠前的所有字符都是关键字。但是关键字可以有斜杠。如果字符串是“page-123”@GracePeterson,则关键字不能是page XXX您的正则表达式仍然是数学。您在问题中没有明确说明这一点。你能给它添加这样的结尾吗。@GracePeterson在你的问题中,你说“我有一个格式为:关键字/第XXX页”的字符串,那么它怎么可能只是“第123页”?@GracePeterson你似乎改变了问题,使关键字可以是
page XXX
,在这种情况下,我认为这个答案有效。嗨,关键字是任意字符。斜杠前的所有字符都是关键字。但是关键字可以有斜杠。如果字符串是“page-123”@GracePeterson,则关键字不能是page XXX您的正则表达式仍然是数学。您在问题中没有明确说明这一点。你能给它加上这样的结尾吗?@GracePeterson在你的问题中,你说“我有一个格式为:关键字/page XXX的字符串”,那么它怎么可能只是“page-123”呢?@GracePeterson您似乎已经更改了问题,以便关键字可以是第XXX页
,在这种情况下,我认为这个答案有效。它只需要正则表达式:)这不是正则表达式?您使用PHP替换第XXX页,然后获取关键字。但是我需要使用正则表达式来计算关键字。请注意,关键字可以是第XXXIt页,只需要正则表达式:)这不是正则表达式?您正在使用PHP替换第XXX页,然后获取关键字。但是我需要使用正则表达式来计算关键字。请注意,关键字可以是第XXX页