在使用正则表达式确定单词后获取数字和单词

时间:2015-09-01 18:53:37

标签: javascript regex

我试图用正则表达式确定单词之后用单词获取数字:

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*)

2 个答案:

答案 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