用正则表达式查找整个句子

Find whole sentence with Regex

本文关键字:句子 查找 正则表达式      更新时间:2023-09-26

我喜欢将选择扩展到整个句子。但是我无法生成正确的正则表达式。这是我到目前为止的代码:

var re_string = "[.?!](.*?"+RegExp.quote(selector)+".*?[.?!])"
var re = new RegExp(re_string, "g");
var str = jQuery(wpccparams.selectors).text();
var m;
while ((m = re.exec(str)) !== null) {
    if (m.index === re.lastIndex) {
        re.lastIndex++;
    }
    console.log(m)
}

的例子:

的选择
"urn value to the sc" // [.?!](.*?urn value to the sc.*?[.?!])

应该给我

"不幸的是,它也将返回值回显到屏幕上,并且实际上未能将其返回给最初调用过滤器的函数。"

在这个文本中:

"。似乎$post只对在特定时间执行的钩子可用。我有一个"init"钩子,需要使用$post->ID从数据库中提取一些数据。到目前为止,我唯一的解决办法是在the_content上添加另一个过滤器,它使用$post来获取我需要的信息。不幸的是,它还将返回值回显到屏幕上,并且实际上未能将其返回给最初调用过滤器的函数。下面的代码提取了我需要的数据,但是回显并且没有返回值:"

不工作的例子:https://regex101.com/r/eS5jD9/2

还应该可以选择两个句子

[.?!]([^.?!]*?urn value to the sc.*?[.?!])

使用这个。.*?不应该与另一个.?!匹配,所以使用negated quantifier。参见演示

https://regex101.com/r/eS5jD9/3