Ruby: предупреждение: вложенный оператор повтора + и? был заменен на «*» [дубликат]

попробуйте это

<!DOCTYPE html>
<html>
<body>

<p> Add Section </p>

<label>First No :</label>
<input id="txt1"  type="text"/><br />
<label>Second No :</label>
<input id="txt2"  type="text"/><br />

<input type="button" name="Add" value="Add" onclick="addTwoNumber()"/>
<p id="demo"></p>
<script>
function myFunction() {
    document.getElementById("demo").innerHTML = Date();
}

function addTwoNumber(){
    var a = document.getElementById("txt1").value;
    var b = document.getElementById("txt2").value;

    var x = Number(a) + Number(b);
    document.getElementById("demo").innerHTML = "Add Value: " + x;
}
</script>

</body>
</html> 
9
задан Ismail Badawi 26 May 2012 в 06:28
поделиться

6 ответов

Каждый из них является квантификатором, квантор звезды (*) означает, что предыдущее выражение может совпадать с нолем или больше раз, как {0,}, в то время как квант плюса (+) указывает, что предыдущее выражение ДОЛЖНО совпадать по крайней мере один раз или несколько раз, и он совпадает с {1,}.

Итак, чтобы повторить:

a*  ---> a{0,}  ---> Match a or aa or aaaaa or an empty string
a+  ---> a{1,}  ---> Match a or aa or aaaa but not a string empty
28
ответ дан aleroot 21 August 2018 в 05:43
поделиться

[<>]+ совпадает с [<>][<>]*

2
ответ дан Darshana 21 August 2018 в 05:43
поделиться

+ означает один или несколько предыдущих атомов. ({1,})

* означает ноль или более. Это не может сравниться ни с чем, кроме символов, указанных в выражении с квадратной скобкой. ({0,})

Обратите внимание, что + доступен в расширенных и Perl-совместимых регулярных выражениях и недоступен в Basic RE. * доступен во всех трех диалектах RE. Этот диалект, который вы используете, зависит, скорее всего, от того, на каком языке вы находитесь.

В основном, в современных операционных системах, которые по-прежнему по умолчанию для BRE, используются только grep и sed (оба которые имеют возможность ERE в качестве опции) и non-vim vi.

3
ответ дан ghoti 21 August 2018 в 05:43
поделиться

* означает ноль или больше, а + означает один или более. Поэтому разница в том, что пустая строка будет соответствовать второму выражению, но не первой.

10
ответ дан Ismail Badawi 21 August 2018 в 05:43
поделиться
  • 1
    Разве это не наоборот? * будет совпадать с пустым, но + не будет. – Joshua Plicque 4 May 2015 в 19:57

* означает ноль или более предыдущего выражения.

Другими словами, выражение необязательно.

Вы можете определить целое число, подобное этому:

-*[0-9]+

Другими словами, необязательный отрицательный знак, за которым следует одна или несколько цифр.

3
ответ дан jahroy 21 August 2018 в 05:43
поделиться
2
ответ дан Darshana 1 November 2018 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: