как я могу создать регулярное выражение для этой замены строки;

#regex

#регулярное выражение

Вопрос:

Я хочу заменить строку: nf.format(xxx ddhgshg jjhjhsss) на nf.format(0) , я имею в виду, что мне нужно предоставление регулярных выражений для этой операции.

Пример входной строки;

  1. nf.format(xxx jjhjhsss)
 2. nf.format(xxx ddhgshg kkkdkd)
 3. nf.format(xxx ddhgshg jjhjhsss())
 

Ответ №1:

Вы можете сопоставить свой шаблон с:

 nf.format(.*)
 

и заменить на

 nf.format(0)
 

Смотрите это на http://regex101.com/r/eR0pY8

Обратите внимание, что это регулярное выражение не проверяет баланс скобок, ) оно просто совпадает с последним ) в строке. Если вам нужен баланс скобок, вам нужно указать вашу текущую рабочую платформу, чтобы мы могли ответить.

Комментарии:

1. спасибо, это работает, кстати, как я могу справиться с этим; «xxx» nf.format(hhhhhhhhh jjj kkkk) «xxxx» nf.format(hhhhhhhhh jjj kkkk) «гггг» Мне нужно просто найти значение между плюсом, а затем заменить его.

2. Используйте [^ ]* вместо .* ->, чтобы это стало nf.format([^ ]*) , но обратите внимание, что теперь у вас не может быть внутренних круглых скобок.

3. Также добавьте rn в набор недопустимых символов, чтобы он не соответствовал возврату каретки и переводу строки -> так что это становится nf.format([^ rn]*)

4. Если мой ответ правильный, пожалуйста, примите его, щелкнув зеленую галочку.

5. Пожалуйста, но… Я повторяю, если мой ответ правильный, пожалуйста, примите его, щелкнув зеленую галочку.

Ответ №2:

Попробуйте использовать приведенное ниже регулярное выражение,

 (nf.format)((.*))
 

ДЕМОНСТРАЦИЯ

Комментарии:

1. Вам не нужны круглые скобки .* , не так ли? Ни вокруг nf.format

2. @Teejay да. Это группа захвата.