正则表达式匹配不同数量的单词

时间:2016-06-30 00:12:14

标签: javascript regex

软件 - Adob​​e Professional XI

编程 - 使用正则表达式的JavaScript来匹配通配符

背景 - 我有多个带有标题栏的pdf图纸,使用java脚本,根据单词(通过匹配正则表达式)的位置添加数字签名字段。

目前正在测试以查看图纸标题栏的修订版1是否存在单词。

脚本搜索修订号1,后跟日期,标题(具有不同数量的单词)和4组首字母。

数字1是静态的(日期,标题和首字母都是通配符,因为每张图纸都不同)。

我使用正则表达式来匹配单词。

正则表达式的这一部分找到数字1和日期(这是有效的)。

^1\s[0-9]{1,2}.[0-9]{1,2}.[0-9]{2}

正则表达式的其余部分与标题和首字母不匹配(这不起作用)

s\w+(\s+\w+){1,8}

如果有人可以帮助使用正则表达式来匹配最受欢迎的单词和首字母。

一旦正则表达式匹配工作,将在4组首字母的每个位置拆分,以便javascript可以在这些位置添加数字签名字段。

还可以帮助解决如何使用正则表达式分割单词吗?

这是整个脚本(javascript正在运行,只有正则表达式需要帮助)

numWords = this.getPageNumWords(0);
// number of words on page
// loop through the words on page
for (var j = 0; j < numWords-1; j++)
{ // get word pair to test 
    ckWords = this.getPageNthWord(0, j) + ' ' + this.getPageNthWord(0, j + 1); // test words 

    // example of word string
    // 1 26.05.16 THE REINFORCEMENT REVISED MM SB AE GM

    if (ckWords.match(/^1\s[0-9]{1,2}.[0-9]{1,2}.[0-9]{2}\s\w+(\s+\w+){1,8}/))
    {
        console.println(ckWords);
    }
}

pdf of title block with text

2 个答案:

答案 0 :(得分:0)

将首字母添加到正则表达式的末尾,以便您可以单独匹配它们。

ckWords = '1 26.05.16 THE REINFORCEMENT REVISED MM SB AE GM';

match = ckWords.match(/^1\s\d{1,2}\.\d{1,2}\.\d{2}\s\w+(?:\s+\w+){1,8}\s([A-Z]{2})\s([A-Z]{2})\s([A-Z]{2})\s([A-Z]{2})$/);
console.log(match);

这会将首字母放在匹配的捕获组1到4中。

另外,不要忘记.在正则表达式中具有特殊含义,因此您需要将它们转义为明确匹配它们。

答案 1 :(得分:0)

这接近你想要的吗?

Public class Container {
Public class animal {
} 
Public class dog:animal{
} 

Public class cat:animal {
} 
}