我需要一个仅针对以下示例中列出的项目的RegEx:
The category:
A short description about the following list:
Item 1, Located at Place 1
Item 2, Located at Place 2
Item 3, Located at Place 3
The next category:
我可以匹配"类别"之后的所有内容。之前"下一个类别:",但我不仅可以获得这些物品。示例描述将从文档更改为文档。
这将与Java一起使用,但如果可能,我更愿意使用纯正则表达式。
我已经在这个工作了几个小时,我把头发拉了出来。非常感谢帮助。
答案 0 :(得分:1)
假设小描述总是以冒号结尾,并且项目中的字符串中没有其他冒号,您可以使用以下内容:
The category:\\s*[^:]*:\\s*([^:]*)\\s+The next category:
[^:]*
匹配除冒号之外的任何字符。 \\s+
用于换行。其余的正则表达式是非常字面的。
答案 1 :(得分:0)
不要使用正则表达式。写一个简单的解析器:
var lines = text.split('\n');
var category = '',
categoryLine = 0;
for (var i = 0; i < lines.length; i++) {
var line = lines[i];
if (/category:$/.test(line)) {
// beginning of a new category
category = line;
categoryLine = i;
console.log('BEGIN CATEGORY: ' + line);
} else if (i == categoryLine + 1) {
// description line (skip)
} else {
// this is an item in a list
console.log('category="%s" item="%s"',
category, line);
}
}
假设:
category: