正则表达式检查另一个字符串中是否存在一个字符串

时间:2019-01-09 19:17:07

标签: php regex string preg-match preg-match-all

我正在尝试在await fs.writeFile(`./${fileName}.json`, JSON.stringify(result.recordsets[0]), function(err) { if(err) { return console.log(err) } }) const file = require(`./${fileName}.json`) 的字符串中查看/target-的存在。

/dir1/dir2/dir3/dir4/../dir7/dir8/dir9/target-.a-word1-word2-alphanumberic1-alphanumberic2.md

演示:https://regex101.com/r/Saxk8x/1

我使用$re = '/^(.*?)(\/target-)(.*?)(\.md)$/i'; $str = '/dir1/dir2/dir3/dir4/../dir7/dir8/dir9/target-.a-word1-word2-alphanumberic1-alphanumberic2.md'; preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0); // Print the entire match result var_dump($matches); preg_match还是有更快或更容易的方法?

即使Demo正常运行,preg_match_allpreg_match都返回null。

2 个答案:

答案 0 :(得分:2)

如果只需要查找确切的字符串import pandas as pd parsed_csv_txt = pd.read_csv("tabbed.txt",delim_whitespace=True) print(parsed_csv_txt) ,则可以使用/target-(如果要区分大小写的搜索,请使用strpos())。它会比最好的正则表达式快。

stripos()

答案 1 :(得分:1)

由于striposstrpos比正则表达式要快,因此这是简单易用的RegEx演示。

摘要

$re = '/\/target\-/';
$str = '/dir1/dir2/dir3/dir4/../dir7/dir8/dir9/target-.a-word1-word2-alphanumberic1-alphanumberic2.md';

if(preg_match($re, $str, $match)){
echo $match[0].' found';
}else{
echo 'Aww.. No match found';
}

查看演示here

注意:如果只想检查一次,最好使用preg_match而不是preg_match_all

详细了解preg_match