gpt4 book ai didi

javascript - JS正则表达式在数据表中用连字符匹配整个单词

转载 作者:行者123 更新时间:2023-11-29 19:30:46 25 4
gpt4 key购买 nike

不确定最好是在这里发布还是在 JQ dataTables 论坛上发布。我会在这里试试。

对数据表中的列进行精确的正则表达式匹配,有两种情况,一种很好,但第二种不太好!

案例 1列数据

Joe    
Bob
Sue
Bobby
Joey

那么我想要所有包含 Joe、Bob、Sue 而不是 Bobby 和 Joey 的行。

我的正则表达式看起来像这样;

 \b(Joe|Bob|Sue)\b

而且效果很好。我看到了三个名字的筛选行,而不是 Bobby 和 Joey。我使用竖线分隔的列表,因为我还将过滤器列表存储在 URL 参数中,以便可以对过滤后的版本进行标记。

现在我的问题案例:案例 2列数据

Joe    
Bob
Sue
Bobby
Joey
Ann
Jo-Ann

在这种情况下,我想要 Bob Sue 和 Ann 行。

使用这个正则表达式

\b(Bob|Sue|Ann)\b

获取我想要的行,但也获取 Jo-Ann 行,我假设是因为 - 被视为单词之间的边界。

尝试使用 [\w-] 但似乎无法在竖线分隔的列表中使用它。下面是 fiddle 。

http://refiddle.com/1v1j

谢谢,

戴夫

最佳答案

您可以创建一个DIY 边界。

使用捕获组或非捕获组,我们可以断言字符串的开头或空格字符在前面,同时断言空格字符或字符串的结尾遵循您的分组模式。

(?:^| )(Bob|Sue|Ann)(?: |$)

如果愿意,您也可以使用否定字符类。在alternation operator的右边,我们不匹配上面正则表达式中的一个空格字符,而是匹配一个不是连字符或者单词字符的字符,更接近扩展单词边界的意图,同样做对于后面的组。

(?:^|[^-\w])(Bob|Sue|Ann)(?:[^-\w]|$)

关于javascript - JS正则表达式在数据表中用连字符匹配整个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27732348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com