javascript中另一组旁边的Regex组
我如何获得紧跟在另一个正则表达式组之后的单词(a-z,a-z,0-9)的正则表达式?比如说, AAFS142美国文学3我不想让人读到这篇文章 AAFS209美国音乐3我不想让人读到这个 我有[A-Z]{4}\d{3}\b作为粗体部分。现在,我怎样才能为美国文学和美国音乐制作一个严格基于这一事实的正则表达式,即它是在另一个正则表达式之后 这是正则表达式应该捕捉的内容(粗体) AAFS142美国文学3我不想让人读到这个javascript中另一组旁边的Regex组,javascript,regex,Javascript,Regex,我如何获得紧跟在另一个正则表达式组之后的单词(a-z,a-z,0-9)的正则表达式?比如说, AAFS142美国文学3我不想让人读到这篇文章 AAFS209美国音乐3我不想让人读到这个 我有[A-Z]{4}\d{3}\b作为粗体部分。现在,我怎样才能为美国文学和美国音乐制作一个严格基于这一事实的正则表达式,即它是在另一个正则表达式之后 这是正则表达式应该捕捉的内容(粗体) AAFS142美国文学3我不想让人读到这个 AAFS209美国音乐3我不想让人读到这篇文章解决JS缺乏后顾之忧的一种方法是使
AAFS209美国音乐3我不想让人读到这篇文章解决JS缺乏后顾之忧的一种方法是使用非捕获
(?:)
和捕获组()
。匹配非捕获组,但不“记住”,并存储捕获组
与正则表达式一样,下面的内容有点密集,但您可以看到有三组括号-非捕获、捕获,然后是非捕获:
let regexString=/(?:[A-Z]{4}[\d]{3}\s)([A-za-z0-9]+)(?:\s\d)/g
第一个未捕获的组(?:[A-Z]{4}[\d]{3}\s)
匹配,但不记得课程字母数字代码。第二个([A-za-z0-9]+)
匹配并捕获()
中+
字符的任何列表,即标题。最后一个命令告诉它停止与(?:\s\d)
匹配空格+'3'
捕获组和javascript的第二个问题是,它们仅在使用regexString.exec()
时返回,而在使用.match()
时不返回.exec()
返回一个数组,匹配的文本作为第0个(不是这里需要的,因为它包括非捕获组),然后后续索引就是捕获组
让match1=x.exec('AAFS209美国音乐3')[1]
=美国音乐'
let match2=x.exec('AAFS241 3D美国音乐剧3')[1]
='3D美国音乐剧'
。(不确定这是否是一门课程,更不用说是一件事了,但我们可以期待。此外,我们还想让正则表达式在标题中使用数字)。听说过Lookback吗?请提供更多示例,预期的输入和输出以及使用的编程语言。您只需在模式末尾添加*
,即可包含其后的任何内容。我觉得这不是你想要的,但你的问题有点含糊。([a-Z]{4}\d{3})\s+(\w+\s+\w+)
?使用正向查找(?@cᴏʟᴅsᴘᴇᴇᴅ 不是用JavaScript。