вопрос регулярных выражений javascript - PullRequest
0 голосов
/ 20 марта 2009

У меня есть длинная строка, и мне нужно найти экземпляры '#! #' + Некоторый текст + '#! #'

сейчас у меня есть:

string.replace (/ (#! # * # #!) / Г, функция (м) {....});

Мне нужно, чтобы все это было передано в такую ​​функцию, чтобы я мог правильно их заменить.

Тем не менее, я хочу, чтобы m было равно только тому, что лежит между двумя #! # .. Я хочу эту часть .. #! #

но то, что я возвращаю, должно заменить весь #! # '+ Некоторый текст +' #! #

Если это имеет значение, то текст между двумя #! # Будет либо целым числом, либо предложением, но, конечно, он не будет содержать шаблон #! #.

Ответы [ 2 ]

4 голосов
/ 20 марта 2009
/(#!#*#!#)/

Близко, но * означает, что это означает "несколько случаев" # ", что, вероятно, не то, что вы имели в виду. Попробуйте:

/#!#(.*?)#!#/

(Значения *? Как можно меньше совпадают с #! #. В противном случае, если есть две последовательности #! #, Выражение будет «жадно» совпадать с последней.)

0 голосов
/ 20 марта 2009

Попробуйте снова разобрать, когда вы получите "большое" слово, например,

"llala #!#11#!# asdad".replace(/#!#(.*?)#!#/gi, function(m) { return m.match(/#!#(.*?)#!#/)[1];})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...