Все, что вам нужно, чтобы передать список байт-массивов, и эта функция вернет вам массив байтов (объединенный). Это лучшее решение, о котором я думаю:).
public static byte[] CombineMultipleByteArrays(List<byte[]> lstByteArray)
{
using (var ms = new MemoryStream())
{
using (var doc = new iTextSharp.text.Document())
{
using (var copy = new PdfSmartCopy(doc, ms))
{
doc.Open();
foreach (var p in lstByteArray)
{
using (var reader = new PdfReader(p))
{
copy.AddDocument(reader);
}
}
doc.Close();
}
}
return ms.ToArray();
}
}
Можно получить доступ к группам фиксации как это:
var myString = "something format_abc";
var myRegexp = /(?:^|\s)format_(.*?)(?:\s|$)/g;
var match = myRegexp.exec(myString);
console.log(match[1]); // abc
И если существует несколько соответствий, можно выполнить итерации по ним:
var myString = "something format_abc";
var myRegexp = /(?:^|\s)format_(.*?)(?:\s|$)/g;
match = myRegexp.exec(myString);
while (match != null) {
// matched text: match[0]
// match start: match.index
// capturing group n: match[n]
console.log(match[0])
match = myRegexp.exec(myString);
}
Ваш синтаксис, вероятно, не является лучшим для хранения. FF/Геккон определяет RegExp как расширение Функции.
(FF2 пошел до typeof(/pattern/) == 'function'
)
кажется, что это характерно для FF - IE, Opera и Chrome, все выдают исключения для него.
Вместо этого используйте любой метод, ранее упомянутый другими: RegExp#exec
или String#match
.
Они предлагают те же результаты:
var regex = /(?:^|\s)format_(.*?)(?:\s|$)/;
var input = "something format_abc";
regex(input); //=> [" format_abc", "abc"]
regex.exec(input); //=> [" format_abc", "abc"]
input.match(regex); //=> [" format_abc", "abc"]
Использование Вашего кода:
console.log(arr[1]); // prints: abc
console.log(arr[0]); // prints: format_abc
Редактирование: Safari 3, если это имеет значение.
var myString = "something format_abc";
var arr = myString.match(/\bformat_(.*?)\b/);
console.log(arr[0] + " " + arr[1]);
Эти \b
не точно то же самое. (Это работает над --format_foo/
, но не работает над format_a_b
), Но я хотел показать альтернативу Вашему выражению, которое прекрасно. Конечно, эти match
вызов является важной вещью.
Ваш код работает на меня (FF3 на Mac), даже если я соглашаюсь с PhiLo, которым должен, вероятно, быть regex:
/\bformat_(.*?)\b/
(Но, конечно, я не уверен, потому что я не знаю контекст regex.)
Получите все возникновение группы
let m=[], s = "something format_abc format_def format_ghi";
s.replace(/(?:^|\s)format_(.*?)(?:\s|$)/g, (x,y)=> m.push(y));
console.log(m);
Мы можем получить доступ к подобранной группе в регулярные выражения при помощи обратной косой черты, сопровождаемой количеством группы соответствия:
/([a-z])\1/
В коде \1 представленный, подобранные первой группой ([a-z])