Ответ 1
Для этого вам не нужно регулярное выражение. Вот пример:
var str = "'SELECT___100E___7',24";
var afterComma = str.substr(str.indexOf(",") + 1); // Contains 24 //
Требуется регулярное выражение для получения всех символов после ,
(не включая его) из переменной. Эта переменная может содержать, например,
'SELECT___100E___7',24
'SELECT___100E___7',1
'SELECT___100E___7',286
'SELECT___100E___7',5147
Примечание. В этой переменной может быть любая длина символов после ,
.
Объяснение regexp будет дополнительной помощью для новичков:)
Изменить: ответ javascript будет таким же хорошим
Для этого вам не нужно регулярное выражение. Вот пример:
var str = "'SELECT___100E___7',24";
var afterComma = str.substr(str.indexOf(",") + 1); // Contains 24 //
Или:
,[\s\S]*$
или ,.*$
, чтобы соответствовать всем после первой запятой (см. объяснение, для которого нужно использовать); или
[^,]*$
, чтобы соответствовать всем после последней запятой (что, вероятно, вам нужно).
Вы можете использовать, например, /[^,]*/.exec(s)[0]
в JavaScript, где s - исходная строка. Если вы хотите использовать многострочный режим и находите все совпадения таким образом, вы можете использовать s.match(/[^,]*/mg)
для получения массива (если у вас есть несколько строк вашего выделенного примера в переменной на отдельных строках).
[\s\S]
- это символьный класс, который соответствует как прописным, так и не-пробельным символам (т.е. всем). Это отличается от .
тем, что оно соответствует символам новой строки.*
означает, что предыдущий элемент может повторяться 0 или более раз.$
- это якорь, который требует, чтобы конец совпадения находился в конце строки (или конец строки при использовании флага /m multiline).Для первого совпадения первое регулярное выражение находит первую запятую ,
, а затем соответствует всем символам после окончания строки [\s\S]*$
, включая запятые.
Второе регулярное выражение соответствует как можно большему количеству незамкнутых символов до конца строки. Таким образом, весь матч будет после последней запятой.
[^,]*$
мог бы сделать. (Соответствует всем после последней запятой).
Объяснение: [^,]
соответствует каждому символу, кроме ,
. *
означает, что регулярное выражение соответствует любому числу повторений [^,]
. Значок $
соответствует концу строки.
Это соответствует слову любой длины:
var phrase = "an important number comes after this: 123456";
var word = "this: ";
var number = phrase.substr(phrase.indexOf(word) + word.length);
// number = 123456
.+,(.+)
Пояснение:
.+,
будет искать все до запятой, включая запятую.
(.+)
будет искать все после запятой и в зависимости от вашей среды регулярных выражений
\1
- это ссылка для первой скобленной группы скобок, в которой вам нужно, в этом примере, все после запятой.
Вы можете попробовать следующее:
new_string = your_string.split(',').pop().trim();
Вот как это работает:
split(',')
создает массив из разных частей your_string
(например, если строка "'SELECT___100E___7',24"
, массив будет ["'SELECT___100E___7'", "24"]
).
pop()
получает последний элемент массива(в примере это будет "24"
).
Этого было бы достаточно, но в случае, если могут быть некоторые пробелы (не в случае OP, но больше в целом), мы могли бы иметь:
trim()
, который удалит пробелы вокруг строки (в случае, если это будет " 24 "
, это станет просто "24"
)Это простое решение и, конечно, проще, чем регулярное выражение.
Возможно, вы можете попробовать это
var str = "'SELECT___100E___7',24";
var res = str.split(',').pop();
Это должно работать
preg_match_all('@.*\,(.*)@', '{{your data}}', $arr, PREG_PATTERN_ORDER);
Вы можете протестировать его здесь: http://www.spaweditor.com/scripts/regex/index.php
RegEx: .*\,(.*)
Те же теги RegEx для JavaScript: http://www.regular-expressions.info/javascriptexample.html
Другая идея - сделать myVar.split(',')[1];
Для простого случая не использовать regexp - хорошая идея...