gpt4 book ai didi

javascript - 正则表达式相关的混淆

转载 作者:行者123 更新时间:2023-11-30 14:12:08 24 4
gpt4 key购买 nike

我想使用 javascript 中使用的正则表达式从以下字符串中提取 mkghj.bmgpp.kp

avb@gh.lk mkghj.bmg ,,,,fsdsdf.fdfd pllk.kp sdfsdf.bb,,,, pp.kp

,,,, 中的所有内容都需要忽略。 ,,,, 可能有多个实例,但它们总是会在字符串中出现偶数次(也有可能不出现)。

此外,avb@gh.lk 有一个@符号,因此需要忽略它

我想我正在寻找的规则是这样的 - 如果有一个点 (.) 向前看并向后看:-

  1. 如果点被包含在,,,, 中则忽略它
  2. 如果点前面有@,点和@之间没有空格,忽略它
  3. 在所有其他情况下,在点的任一侧捕获一组完整的字符(直到遇到空格)

我想出了这个正则表达式,但它没有帮助

[^\, ]+([^@ \,]+\w+)[^\, ]+

最佳答案

一般来说(注意捕获组):

not_this | neither_this_nor_this | (but_this_interesting_stuff)


对于您的具体示例,这可能是

,,,,.*?,,,,|\S+@\S+|(\S+)

您需要检查组 1 是否存在,请参阅 a demo on regex101.com .


JS 中,这将是:

var myString = "avb@gh.lk mkghj.bmg ,,,,fsdsdf.fdfd pllk.kp sdfsdf.bb,,,, pp.kp";
var myRegexp = /,,,,.*?,,,,|\S+@\S+|(\S+)/g;
match = myRegexp.exec(myString);
while (match != null) {
if (typeof(match[1]) != 'undefined') {
console.log(match[1]);
}
match = myRegexp.exec(myString);
}

关于javascript - 正则表达式相关的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54223050/

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