[英]Limit the number of words with regular expression
您提供的正則表達式^(?:\\b\\w+\\b[\\s\\r\\n]*){1,250}$
如果沒有任何特殊字符,則可以將250個單詞限制為多行。
如果我需要搜索還包含特殊字符的單詞數怎么辦? 像這樣的例子:
--> Hi! i need help with regular expression, please help me. <--
最簡單的方法是對單詞字符進行分組,並將這些分組限制在特定范圍內(1-250):
^\W*(\w+(\W+|$)){1,250}$
我對C#不熟悉,因此我將描述正則表達式。
方法1:
您基本上是在尋找這個:
(\b[^\s]+\b){1,250}
在Java中:
\\s
是任何空格字符。
[^\\s]+
是一系列非空白字符。
\\b
是單詞邊界。
您可以將正則表達式轉換為C#。
方法2:
將輸入文本標記為空格分隔的單詞。 在Java中,這是通過以下方式完成的:
String[] tokens = inputString.split("\\s+");
正則表達式為\\s+
現在,您可以計算數組的長度,並實現邏輯以拒絕超過250個字。
方法3:
定義一個模式以將空白捕獲為“捕獲組”。
(\s+)
現在,您可以使用while循環對模式匹配器中的匹配數進行計數。 這本質上與方法2相同,但不涉及創建令牌數組。
回答遲了一點,但是這里沒有解決方案:
^([A-ZA-Z0-9] + [^ A-ZA-Z0-9] *){1,8} $
{1,8}定義您想要多少字
您可以在任何表達式上使用{a,b}
量詞,如下所示:
.{1,256}
[\d\w_?]{1,567}
(0x)?[0-9A-F]{1,}
因此,就您而言,您可以使用:
^(?:\b\w+\b[_!?\s\r\n]*){1,250}$
_!?
可以是任何特殊字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.