尝试编写一些正则表达式来验证字符串,其中不允许使用null和空字符串,但应允许使用字符+新行。我要验证的字符串如下:
First line \n
Second line \n
据我所知:
^(?!\s*$).+
由于新行,这使我的验证失败。有任何想法吗?我应该补充,我不能使用awk。
最佳答案
码
以下正则表达式与整行匹配。
See regex in use here
^[^\r\n]*?\S.*$
以下正则表达式与上面的正则表达式相同,只是它们仅用于验证目的(它们与整行不匹配,相反,它们只是确保其格式正确)。与上面的一个相比,使用这些正则表达式的好处是步骤数(性能)。在下面的regex101链接中,它们显示为28步,而上面的模式为34。
See regex in use here
^[^\r\n]*?\S
See regex in use here
^.*?\S
结果
输入值
First line \n
Second line \n
s
输出量
仅匹配
First line \n
Second line \n
s
说明
^
在行首声明位置[^\r\n]*?
多次匹配集合中不存在的任何字符(除回车符或换行符以外的任何字符),但次数要尽可能少(使这种惰性提高性能,减少步骤)\S
匹配任何非空白字符.*
多次匹配任何字符(不包括换行符)$
在行尾声明位置关于java - 正则表达式字符串验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47799853/