请详细解释这个正则表达式的含义:String regex = "^((.+,)?\\s*,.+)|(.+,\\s*)$";

如题所述

String regex = "^((.+,)?\\s*,.+)|(.+,\\s*)$";
首先:^$出现在表达中表示这将要求整串匹配
再次:限定了两个匹配分支,即:^(.+,)?\\s*,.+)和(.+,\\s*)$ 意为:其中之一匹配成功即宣告成功。
解释前半部:(后面一样)
.+,表示为:必须匹配任意字符至少一次至多不限并且在该模式后必须有一个,(逗号)即:abcdef@#$%!!!@#$!@$,或者1234123lkasdfjlj@#$#$,,,,,,,,,
(.+,)?表示为对上面↑解释的模式或者出现一次或者不出现。
\\s*,.+表示在上面的模式出现(或者不出现)后尽可能的去寻找若干空白符(空格、制表符、回车、换行等不可见字符),当然,找不到也不要紧。在此之后必须找到,(逗号)最后是任意字符若干次。
至此,前半部分解释完了。后面自己思考吧。
最后说明:^(.+,)?\\s*,.+)和(.+,\\s*)$
这两个分支的意思是:查找以(.+,)?\\s*,.+)开头或者以(.+,\\s*)结尾的,两者符合其一就算匹配成功。

给出匹配的文本:
第一个分支:
abcef1234, ,ghijk
,a
,2
第二个分支:
a, 前面是空白
b,没有空白
alsdkfj12340591023458,,,,,,,,,,,

希望我说明白了。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网