te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - RegEx for matching a word after specific word in multiple lines - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - RegEx for matching a word after specific word in multiple lines - Stack Overflow

programmeradmin4浏览0评论

There is regex feature to find words instead of "Ctrl + F" in some editor like VS Code, I'm trying to find a word after a specific word with some another lines.

For example, how to use regex to filter those "someFunction" with the specific "message" property as below:

...
someFunction({
  a: true,
  b: false
})
someFunction({
  a: true,
  b: false,
  c: false,
  d: true,
  message: 'I wnat to find the funciton with this property'
})
someFunction({
  a: true
})
...

The regex I tried is like:

/someFunction[.*\s*]*message/

But it did't work

How can I achieve this aim?

There is regex feature to find words instead of "Ctrl + F" in some editor like VS Code, I'm trying to find a word after a specific word with some another lines.

For example, how to use regex to filter those "someFunction" with the specific "message" property as below:

...
someFunction({
  a: true,
  b: false
})
someFunction({
  a: true,
  b: false,
  c: false,
  d: true,
  message: 'I wnat to find the funciton with this property'
})
someFunction({
  a: true
})
...

The regex I tried is like:

/someFunction[.*\s*]*message/

But it did't work

How can I achieve this aim?

Share Improve this question edited May 8, 2019 at 4:11 Emma 27.7k11 gold badges48 silver badges71 bronze badges asked May 8, 2019 at 3:39 Chris KaoChris Kao 5036 silver badges15 bronze badges 2
  • What version of VS Code are you using? Multiline search was added in v1.29 (released November 2018), as per this answer. – Hoppeduppeanut Commented May 8, 2019 at 3:44
  • Your reference link is correct! I need to use "\n" to enable the multiline search. The final regex I used is /someFunction[\S\n\s*]*message/ – Chris Kao Commented May 8, 2019 at 6:57
Add a ment  | 

4 Answers 4

Reset to default 12

Your expression is just fine, you might want to slightly modify it as:

 someFunction[\S\s*]*message

If you wish to also get the property, this expression might work:

(someFunction[\S\s*]*message)(.*)

You can add additional boundaries, if you like, maybe using regex101..

Graph

This graph shows how your expression would work and you can visualize other expressions in jex.im:

Performance Test

This script returns the runtime of a string against the expression.

repeat = 1000000;
start = Date.now();

for (var i = repeat; i >= 0; i--) {
	var string = "some other text someFunction \n            \n message: 'I wnat to find the funciton with this property'";
	var regex = /(.*)(someFunction[\S\s*]*message)(.*)/g;
	var match = string.replace(regex, "$3");
}

end = Date.now() - start;
console.log("YAAAY! \"" + match + "\" is a match 
发布评论

评论列表(0)

  1. 暂无评论