我想用这个正则表达式捕获一个字符串:
^([\d]_[a-z|A-Z]+_test)$
所以它会捕获类似:1_mytest_test
但是,如果字符串在另一个字符串中,如:
results.1_mytest_test.=fail, more info
没有匹配。
我认为^
和$
会划分我正在寻找的字符串的开头和结尾,对吗?
答案 0 :(得分:3)
如果您不需要将文字$str = "1,2,3,4,5,6";
function pagination()
{
global $str;
// Using number 4 as an input from the string
preg_match('/(.{2})(4)(.{2})/', $str, $matches);
echo $matches[0]."\n".$matches[1]."\n".$matches[1]."\n".$matches[1]."\n";
}
pagination();
与正则表达式匹配,则应移除^
/ $
锚点,并且字符类中不需要|
:
|
请参阅regex demo
\d_[a-zA-Z]+_test
是字符串锚点的开头,而^
是字符串锚点的结尾,因此,它们是"锚定"你在开始和结束时匹配的字符串。
对于$
,字符类匹配单个字符。 |
匹配1个字母。此处不需要交替运算符[a-zA-Z]
,因为它按字面处理(即|
将匹配输入字符串中的[a-zA-Z|]
符号。)
仅供参考:在许多情况下,当您需要在里面匹配更大的字符串时,您需要使用字词边界|
来匹配整个字词:
\b
但是,人们通常会在模式中使用非单词字符,然后通过环顾来更安全(不确定您的引擎支持后视,但这里是PCRE的版本):< / p>
\b\d_[a-zA-Z]+_test\b