#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:
Комментарии:
1. Вам не нужны круглые скобки
.*
, не так ли? Ни вокругnf.format
2. @Teejay да. Это группа захвата.