正则表达式,匹配字符串中的子字符串

时间:2015-11-02 16:54:26

标签: regex string

我想用这个正则表达式捕获一个字符串:

^([\d]_[a-z|A-Z]+_test)$

所以它会捕获类似:1_mytest_test

的内容

但是,如果字符串在另一个字符串中,如:

results.1_mytest_test.=fail, more info

没有匹配。

我认为^$会划分我正在寻找的字符串的开头和结尾,对吗?

1 个答案:

答案 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