gpt4 book ai didi

JavaScript 正则表达式组合

转载 作者:行者123 更新时间:2023-11-30 08:02:38 25 4
gpt4 key购买 nike

嗨堆栈溢出,

I have this three regexp:
var regex = new RegExp(/[A-Z]+/g); // This is to select only word with CAPS
var regexOk = new RegExp(/[^OK]+/g); // This is to select anything beside OK
var regexDmv = new RegExp(/[^DMV]+/g); // This is to select anything beside DMV

// And a variable:
var string = "Let's go to the DMV tomorrow, is that OK? ANSWER ME!";

基本上我想做的是搜索这个字符串,以便它返回['答案', '我']

谁能给我建议?

最佳答案

A.分别匹配ANSWERME(参见demo)

\b(?!DMV|OK)[A-Z]+\b

这与 (?!DMV|OK)\b[A-Z]+\b 相同(您可以将开放边界 \b 放在负前瞻)。

使用 Javascript:

var regex = /\b(?!DMV|OK)[A-Z]+\b/;
var match = regex.exec(string);
if (match != null) {
result = match[0];
}

工作原理

  • [A-Z]+ 匹配一个大写单词
  • 大写字母两侧的边界 \b 确保我们有一个完整的单词,而不是嵌入另一个单词的一些字母
  • 单词前的否定先行 (?!DMV|OK) 确保我们匹配的单词既不是 OK 也不是 DMV<

B.将 ANSWER ME 匹配在一起(参见 demo )

(?:\b(?!DMV|OK)[A-Z]+\b\s*)+

同样,如果您愿意,可以将开头的 \b 移动到 [A-Z]+

之前

在 JavaScript 中:

var regex = /(?:\b(?!DMV|OK)[A-Z]+\b\s*)+/;
var match = regex.exec(string);
if (match != null) {
result = match[0];
}

工作原理

  • (?:...)+ 非捕获组匹配一个或多个大写单词 [A-Z]+ 后跟可选的空白字符 \s*
  • 大写字母两侧的边界 \b 确保我们有一个完整的单词,而不是嵌入另一个单词的一些字母
  • 在每个单词之前的否定先行 (?!DMV|OK) 确保我们匹配的单词既不是 OK 也不是 DMV<

关于JavaScript 正则表达式组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24254860/

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