Вы можете использовать код follong для добавления содержимого в файл:
String fileName = "/ home / shriram / Desktop / Images /" + "test.txt"; FileWriter fw = new FileWriter (имя_файла, true); fw.write («здесь вы будете вставлять содержимое или добавлять в файл»); fw.close (); FileWriter fw1 = new FileWriter (имя_файла, true); fw1.write («другое содержимое будет добавлено в тот же файл»); fw1.close ();
Они называются кванторами.
*
0 или более из предыдущего выражения
+
1 или более из предыдущего выражения
Per по умолчанию квантификатор жадный, это означает, что он соответствует как можно большему количеству символов.
?
после квантификатора изменяет поведение, чтобы сделать этот квантификатор «неровным», означает, что он будет соответствовать как можно меньше.
Пример greedy / ungreedy
Например, в строке « abab »
a.*b
будет соответствовать «abab» (preg_match_all будет возвращать одно совпадение «abab»)
, в то время как a.*?b
будет соответствовать только стартовому «ab» (preg_match_all вернет два совпадения, «ab»)
Вы можете проверить ваши регулярные выражения онлайн, например на Regexr, см. жадный пример здесь
Первый (+
) - один или несколько символов . Второй (*
) - ноль или более символов . Оба не являются жадными (?
) и соответствуют чему-либо (.
).
+
соответствует хотя бы одному символу
*
соответствует любому числу (включая 0) символов
. ?
указывает ленивое выражение, поэтому оно будет соответствовать как можно меньше символов.
Я думаю, что в предыдущих ответах не удалось выделить простой пример:
, например, у нас есть массив:
numbers = [5, 15]
Следующее выражение регулярного выражения ^[0-9]+
соответствует: 15
только. Однако ^[0-9]*
соответствует как 5 and 15
. Разница в том, что для оператора +
требуется, по крайней мере, один дубликат предыдущего выражения регулярного выражения
A +
соответствует одному или нескольким экземплярам предыдущего шаблона. *
соответствует нулю или более экземплярам предыдущего шаблона.
Итак, в основном, если вы используете +
, должен быть хотя бы один экземпляр шаблона, если вы используете *
, он будет по-прежнему совпадают, если нет экземпляров.
Звезда очень похожа на плюс, единственное отличие состоит в том, что, когда плюс соответствует 1 или более предшествующим символу / группе, начало соответствует 0 или более.
В RegEx {i,f}
означает, что «между i
и f
соответствует». Давайте посмотрим на следующие примеры:
{3,7}
означает от 3 до 7 соответствий {,10}
означает до 10 совпадений без нижнего предела (т.е. нижний предел равен 0) {3,}
означает не менее 3 совпадений без верхнего предела (т.е. верхний предел бесконечен) {,}
означает, что верхний предел или нижний предел для количество совпадений (т. е. нижний предел равен 0, а верхний предел бесконечен) {5}
означает ровно 4 Большинство хороших языков содержат сокращения, RegEx:
+
является сокращением для {1,}
*
является сокращением для {,}
?
является сокращенное значение для {,1}
Это означает, что +
требует не менее 1 совпадения, в то время как *
принимает любое количество совпадений или не имеет совпадений вообще, а ?
принимает не более 1 совпадающие или нулевые.
Кредит: Codecademy.com
Рассмотрим следующую строку:
ab
Образец (ab.*)
вернет совпадение для группы захвата с результатом ab
Пока шаблон (ab.+)
не будет соответствовать и ничего не возвращать.
Но если вы измените строку на следующую, она вернет aba
для шаблона (ab.+)
aba