繁体   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