Ваше выражение просто отлично, вы можете немного изменить его следующим образом:
someFunction[\S\s*]*message
Если вы также хотите получить свойство, это выражение может работать:
(someFunction[\S\s*]*message)(.*)
Вы можете добавить дополнительные границы, если хотите, возможно, используя regex101.com .
График
Этот график показывает, как будет работать ваше выражение, и вы можете визуализировать другие выражения в jex.im :
Тест производительности
Этот скрипт возвращает время выполнения строки для выражения.
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 ??? ");
console.log(end / 1000 + " is the runtime of " + repeat + " times benchmark test. ? ");
const regex = /(someFunction[\S\s*]*message)(.*)/;
const str = `...
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
})
...`;
let m;
if ((m = regex.exec(str)) !== null) {
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}