Как я могу сопоставить последнюю часть письма с помощью JavaScript? [Дубликат]

Попытка объяснить это более описательно,

Операция 1:

x = [[0, 0], [0, 0]]
print(type(x)) # <class 'list'>
print(x) # [[0, 0], [0, 0]]

x[0][0] = 1
print(x) # [[1, 0], [0, 0]]

Операция 2:

y = [[0] * 2] * 2
print(type(y)) # <class 'list'>
print(y) # [[0, 0], [0, 0]]

y[0][0] = 1
print(y) # [[1, 0], [1, 0]]

Заметил, почему не изменяется первый элемент первого списка не изменил второй элемент каждого списка? Это потому, что [0] * 2 действительно представляет собой список из двух чисел, и ссылка на 0 не может быть изменена.

Если вы хотите создать копии клонов, попробуйте выполнить операцию 3:

import copy
y = [0] * 2   
print(y)   # [0, 0]

y = [y, copy.deepcopy(y)]  
print(y) # [[0, 0], [0, 0]]

y[0][0] = 1
print(y) # [[1, 0], [0, 0]]

еще один интересный способ создания копий клонов, операция 4:

import copy
y = [0] * 2
print(y) # [0, 0]

y = [copy.deepcopy(y) for num in range(1,5)]
print(y) # [[0, 0], [0, 0], [0, 0], [0, 0]]

y[0][0] = 5
print(y) # [[5, 0], [0, 0], [0, 0], [0, 0]]
7
задан user3762977 28 June 2014 в 10:40
поделиться

3 ответа

Вы можете сопоставить это:

.*\/

и заменить текстом.

DEMO

14
ответ дан sshashank124 20 August 2018 в 22:28
поделиться

То, что вы хотите сделать, соответствует жадности, максимально возможному совпадению шаблона, по умолчанию оно обычно, но соответствует до последнего экземпляра '/'.

Это было бы примерно так:

 .*\/

Объяснение:

. any character
* any and all characters after that (greedy)
\/ the slash escaped, this will stop at the **last** instance of '/'

Вы можете увидеть это в действии здесь: http: / /regex101.com/r/pI4lR5

2
ответ дан Albert-Jan Stevens 20 August 2018 в 22:28
поделиться

Вариант 1

  • Поиск: ^.*/
  • Заменить: Empty string
  • Поскольку квантор * является жадным, ^.*/ будет совпадать с началом строки до последней косой черты. Таким образом, вы можете напрямую заменить это пустой строкой, и вы останетесь с нужным текстом.

Вариант 2

  • Поиск: ^.*/(.*)
  • Заменить: Группа 1 (обычно синтаксис будет $1 или \1, а не уверен в Ant)
  • Опять же, ^.*/ соответствует последней косой чертой. Затем вы фиксируете конец строки в группе 1 с помощью (.*) и заменяете весь матч Группой 1.
  • На мой взгляд, нет причин выбирать этот вариант, но это хорошо понять .
2
ответ дан zx81 20 August 2018 в 22:28
поделиться
Другие вопросы по тегам:

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