我试图捕获包含两个或更多大写字符的字符串。字符串的结尾始终是一个数字。有时字母和数字之间可能会有换行符,有时不会。这就是我到目前为止所拥有的:
[A-Z-ÅÖÄ\s]+[^\d]
引擎基于javascript。
示例:
输入:
ABC ABCDE XYZ
1
EFG XYZ ABC 2
not me
EFG ABC
3
输出: match1:ABC ABCDE XYZ match2:EFG XYZ ABC match3:EFG ABC
答案 0 :(得分:2)
您可以在Javascript中使用此正则表达式:
/^[A-Z]{2}[^]*?(?=\s*\d+$)/gm
RegEx说明:
^
- 直线开始[A-Z]{2}
- 匹配2个大写英文字母[^]*?
- 匹配0个或更多字符(包括换行符),懒惰(?=\s*\d+$)
- 断言断言我们有0个或更多空格,最后是1个或多个数字。代码演示:
var str = `ABC ABCDE XYZ
1
EFG XYZ ABC 2
not me
EFG ABC
3`;
var re = /^[A-Z]{2}[^]*?(?=\s*\d+$)/gm;
var m = str.match(re);
console.log(m);
答案 1 :(得分:1)