我试图用正则表达式确定单词之后用单词获取数字:
var text = 'SOME HUGE TEXT ARCHIVE: KxhASjx0000-4 SOME HUGH TEXT';
var reg = new RegExp('ARCHIVE:' + '.*?(\\d\\S*)', 'i');
var match = reg.exec(text);
输出将是:
0000-4
我需要:
KxhASjx0000-4
我如何改进这个正则表达式?
我试图使用W
符号,但没有用:
.*?(\\d\w+\\S*)
答案 0 :(得分:2)
如果你知道"存档"你可以试试这个。在所有方面都有:
.*?ARCHIVE:\s?([\w ]+\s?\S*)
它检查ARCHIVE:然后检查空格(如果有的话),然后它读取与之关联的单词和另一个空格(如果有的话)。之后,它会读取所需的数字。
- > ? - 任何字符数次 - > ARCHIVE:
- > S' - 空格(如果有) - >编号的捕获组 - > [\ w] + - 此类中的任何字符。 - > \ S - 除了空格以外的任何东西。
PS:不要忘记相应地逃避角色。
答案 1 :(得分:0)
您可以使用此正则表达式:
void geninterrupt (int n) {
asm("mov al, byte ptr [_n]");
asm("mov byte ptr [genint+1], al");
asm("jmp genint");
asm("genint:");
asm("int 0");
}
或更好:
var reg = new RegExp('ARCHIVE:' + '.*?([a-z\\d]\\S*)', 'i');
我们不会匹配到数字var reg = /ARCHIVE:.*?([a-z\d]\S*)/i;
,而是匹配\d
,这是一个字母或数字,在匹配的群组中匹配[a-z\d]
。
<强>输出:强>
KxhASjx0000-4