Подтвердить что ты не робот

Как я могу использовать регулярное выражение для получения всех символов после определенного символа, например. запятая ( "," )

Требуется регулярное выражение для получения всех символов после , (не включая его) из переменной. Эта переменная может содержать, например,

'SELECT___100E___7',24
'SELECT___100E___7',1
'SELECT___100E___7',286
'SELECT___100E___7',5147

Примечание. В этой переменной может быть любая длина символов после ,.

Объяснение regexp будет дополнительной помощью для новичков:)

Изменить: ответ javascript будет таким же хорошим

4b9b3361

Ответ 1

Для этого вам не нужно регулярное выражение. Вот пример:

var str = "'SELECT___100E___7',24";
var afterComma = str.substr(str.indexOf(",") + 1); // Contains 24 //

Ответ 2

Короткий ответ

Или:

  • ,[\s\S]*$ или ,.*$, чтобы соответствовать всем после первой запятой (см. объяснение, для которого нужно использовать); или

  • [^,]*$, чтобы соответствовать всем после последней запятой (что, вероятно, вам нужно).

Вы можете использовать, например, /[^,]*/.exec(s)[0] в JavaScript, где s - исходная строка. Если вы хотите использовать многострочный режим и находите все совпадения таким образом, вы можете использовать s.match(/[^,]*/mg) для получения массива (если у вас есть несколько строк вашего выделенного примера в переменной на отдельных строках).

Объяснение

  • [\s\S] - это символьный класс, который соответствует как прописным, так и не-пробельным символам (т.е. всем). Это отличается от . тем, что оно соответствует символам новой строки.
  • `[^,] - это отрицательный класс символов, который соответствует всем, кроме запятых.
  • * означает, что предыдущий элемент может повторяться 0 или более раз.
  • $ - это якорь, который требует, чтобы конец совпадения находился в конце строки (или конец строки при использовании флага /m multiline).

Для первого совпадения первое регулярное выражение находит первую запятую ,, а затем соответствует всем символам после окончания строки [\s\S]*$, включая запятые.

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

Ответ 3

[^,]*$

мог бы сделать. (Соответствует всем после последней запятой).

Объяснение: [^,] соответствует каждому символу, кроме ,. * означает, что регулярное выражение соответствует любому числу повторений [^,]. Значок $ соответствует концу строки.

Ответ 4

Это соответствует слову любой длины:

var phrase = "an important number comes after this: 123456";
var word = "this: ";
var number = phrase.substr(phrase.indexOf(word) + word.length);
// number = 123456

Ответ 5

.+,(.+)

Пояснение:

.+,

будет искать все до запятой, включая запятую.

(.+) 

будет искать все после запятой и в зависимости от вашей среды регулярных выражений

\1

- это ссылка для первой скобленной группы скобок, в которой вам нужно, в этом примере, все после запятой.

Ответ 6

Вы можете попробовать следующее:

new_string = your_string.split(',').pop().trim();

Вот как это работает:

  • split(',') создает массив из разных частей your_string

(например, если строка "'SELECT___100E___7',24", массив будет ["'SELECT___100E___7'", "24"]).

  • pop() получает последний элемент массива

(в примере это будет "24").

Этого было бы достаточно, но в случае, если могут быть некоторые пробелы (не в случае OP, но больше в целом), мы могли бы иметь:

  • trim(), который удалит пробелы вокруг строки (в случае, если это будет " 24 ", это станет просто "24")

Это простое решение и, конечно, проще, чем регулярное выражение.

Ответ 7

Возможно, вы можете попробовать это

var str = "'SELECT___100E___7',24";
    var res = str.split(',').pop();

Ответ 9

Другая идея - сделать myVar.split(',')[1];

Для простого случая не использовать regexp - хорошая идея...