我会尽力解释得更好。我也检查了评论,但仍然没有运气。
grep部分返回true,因为正则表达式似乎没问题。但是sed并不能取代
这是脚本:
final int size = data.size();
int index = 0;
while (!lowerBound.isAfter(upperBound)) {
// find inserting index
while (index < size && data.get(index).getLocalTime().isBefore(lowerBound)) {
index++;
}
// insert, if not already in list
if (index >= size || !data.get(index).getLocalTime().equals(lowerBound)) {
data.add(new DataClass(lowerBound, "Inserted"));
} else {
index++;
}
lowerBound = lowerBound.plusHours(1);
}
// merge
DataClass[] merged = new DataClass[data.size()];
int insertionIndex = 0;
int index1 = 0;
int index2 = size;
while (index1 < size && index2 < merged.length) {
DataClass v1 = data.get(index1);
DataClass v2 = data.get(index2);
if (v2.getLocalTime().isBefore(v1.getLocalTime())) {
merged[insertionIndex] = v2;
index2++;
} else {
merged[insertionIndex] = v1;
index1++;
}
insertionIndex++;
}
// copy remaining
while (index1 < size) {
merged[insertionIndex++] = data.get(index1++);
}
while (index2 < merged.length) {
merged[insertionIndex++] = data.get(index2++);
}
data.setAll(merged);
答案 0 :(得分:1)
此正则表达式将确保分号和空格是可选的,并且引号匹配(如果以单/双开头,则将在末尾匹配相应的引号):
/&VAR1\s*=\s*(['"])?1{4}\1;?/
答案 1 :(得分:0)
感谢@Aaron!我读了一点,我想我明白了:
/&VAR1\s*\=\s*\'VALUE\'\;/
@Tripleee谢谢。那在在线测试器中使用Javascript工作,我改用Unix并尝试了,但没有用。我将VALUE更改为搜索por1111。有帮助吗?
grep "\&VAR1\s*\=\s*'[1]{4}'\;"
编辑:完成后,[]和{}是扩展程序regexp,因此可以正常工作:
grep -E "\&VAR1\s*\=\s*'[1]{4}'\;"