Как вы получаете доступ к соответствующим группам в регулярном выражении JavaScript?

Все, что вам нужно, чтобы передать список байт-массивов, и эта функция вернет вам массив байтов (объединенный). Это лучшее решение, о котором я думаю:).

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();
            }
        }
1210
задан Community 23 May 2017 в 11:55
поделиться

7 ответов

Можно получить доступ к группам фиксации как это:

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);
}
1539
ответ дан Ruslan López 23 May 2017 в 21:55
поделиться
  • 1
    @RobertGrant: can' t Вы просто пересекают массив назад? Запустите в размере 1, конец в 0. – adam.r 6 January 2014 в 11:24

Ваш синтаксис, вероятно, не является лучшим для хранения. 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"]
17
ответ дан Jonathan Lonowski 23 May 2017 в 21:55
поделиться
  • 1
    Таким образом, это означает there' s никакой способ сделать это с FTP? – JonatanEkstedt 30 May 2012 в 21:22

Использование Вашего кода:

console.log(arr[1]);  // prints: abc
console.log(arr[0]);  // prints:  format_abc

Редактирование: Safari 3, если это имеет значение.

7
ответ дан eyelidlessness 23 May 2017 в 21:55
поделиться

var myString = "something format_abc";
var arr = myString.match(/\bformat_(.*?)\b/);
console.log(arr[0] + " " + arr[1]);

Эти \b не точно то же самое. (Это работает над --format_foo/, но не работает над format_a_b), Но я хотел показать альтернативу Вашему выражению, которое прекрасно. Конечно, эти match вызов является важной вещью.

54
ответ дан Michael 23 May 2017 в 21:55
поделиться
  • 1
    " 550 dir: Каталог, не пустой " Это doesn' t работают также. – JonatanEkstedt 25 May 2012 в 17:59

Ваш код работает на меня (FF3 на Mac), даже если я соглашаюсь с PhiLo, которым должен, вероятно, быть regex:

/\bformat_(.*?)\b/

(Но, конечно, я не уверен, потому что я не знаю контекст regex.)

3
ответ дан Community 23 May 2017 в 21:55
поделиться

Получите все возникновение группы

let m=[], s = "something format_abc  format_def  format_ghi";

s.replace(/(?:^|\s)format_(.*?)(?:\s|$)/g, (x,y)=> m.push(y));

console.log(m);
0
ответ дан Kamil Kiełczewski 29 August 2019 в 16:06
поделиться

Мы можем получить доступ к подобранной группе в регулярные выражения при помощи обратной косой черты, сопровождаемой количеством группы соответствия:

/([a-z])\1/

В коде \1 представленный, подобранные первой группой ([a-z])

1
ответ дан 19 December 2019 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: