簡體   English   中英

正則表達式字符串驗證

[英]Regex string validation

嘗試編寫一些正則表達式來驗證字符串,其中不允許使用null和空字符串,但應允許使用字符+新行。 我要驗證的字符串如下:

First line \n
Second line \n

據我所知:

^(?!\s*$).+

由於新行,這使我的驗證失敗。 有任何想法嗎? 我應該補充,我不能使用awk。

以下正則表達式與整行匹配。
查看正則表達式在這里使用

^[^\r\n]*?\S.*$

以下正則表達式與上面的正則表達式相同,只是它們僅用於驗證目的(它們與整行不匹配,相反,它們只是確保其格式正確)。 與上面的一個相比,使用這些正則表達式的好處是步驟數(性能)。 在下面的regex101鏈接中,它們顯示為28步,而上面的模式為34。
查看正則表達式在這里使用

^[^\r\n]*?\S

查看正則表達式在這里使用

^.*?\S

結果

輸入

First line \n
Second line \n



s

產量

僅匹配

First line \n
Second line \n
s

說明

  • ^在行首處聲明位置
  • [^\\r\\n]*? 多次匹配集合中不存在的任何字符(除回車符或換行符以外的任何字符),但次數要盡可能少(使這種惰性提高性能-減少步驟)
  • \\S匹配任何非空白字符
  • .*任意次數匹配任意字符(不包括換行符)
  • $在行尾聲明位置

試試這個模式:

([\S ]*(\n)*)*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM