[英]regex to allow only once “&” and “-”
我正在嘗試此正則表達式^[A-Za-z &-]+[A-Za-z]$
這允許這些字符串:
abc && abc
abc -- abc
abc &&-- abc
我想限制它一次只允許一個&
或-
,即abc & abc
。 它應該允許&
和-
,但不能一起使用,即fruits- apple & orange
。
&
和-
只需將&
和-
從帶有+
的字符類中移出:
^[A-Za-z ]+[&-][A-Za-z ]+$
(我在末尾添加了+
,並在最后一組中添加了空格,因為您的示例在標點符號后允許有空格,在末尾可以有多個字母。)
這是一個更干凈的版本,使用不區分大小寫的標志:
/^[a-z ]+[&-][a-z ]+$/i
在我發布此問題后, 您對問題進行了相當大的編輯 ,這完全改變了含義。 同時允許&
和-
在相同的字符串,但只有一次一個,而不是彼此相鄰,你必須得到更多的創意,如:
/^[a-z ]+([&-])[a-z ]+(?!\1)[&-][a-z ]+$/i
這允許第一次使用&
或-
( ([&-])
,但是僅允許第二次未使用的。 我們使用否定的超前組執行此操作: (?!\\1)[&-]
。 這是一個演示 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.