求一正则表达式

litsnake1 2006-06-20 11:30:46
s1="年后*活化石*鸡精喝多*还很低*看看就的";
s2='年后*活化石*鸡精喝多*还很低";

String patern = "(.+)\\*(.+)\\*(.+)\\*(.+)";

但是这个表达式只同时能匹配s1和s2,但是,我只想匹配s2,该怎么修改这个正则表达式
...全文
250 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cooldavy 2006-06-21
  • 打赏
  • 举报
回复
"." 小数点可以匹配除了换行符(\n)以外的任意一个字符,所以它也能代表 "*",
你的patten 那最后一个(.+) 能匹配S1 "年后*活化石*鸡精喝多*还很低*看看就的" 其中的 "还很低*看看就的" 或S2中的 "还很低" .所以s1 s2 都对
cooldavy 2006-06-21
  • 打赏
  • 举报
回复
"." 小数点可以匹配除了换行符(\n)以外的任意一个字符,所以它也能代表 "*",
你的patten 只要一个(.+)就能匹配全部的 "年后*活化石*鸡精喝多*还很低*看看就的" 了

litsnake1 2006-06-20
  • 打赏
  • 举报
回复
继续,兄弟们
litsnake1 2006-06-20
  • 打赏
  • 举报
回复
楼上兄弟,谢谢了,但是不行,你这个正则表达式还是能同时匹配s1,s2的,我是希望只匹配s2,但不匹配s1
treeroot 2006-06-20
  • 打赏
  • 举报
回复
"(.+?)\\*(.+?)\\*(.+?)\\*(.+?)";
litsnake1 2006-06-20
  • 打赏
  • 举报
回复
哦,谢谢,treeroot(旗鲁特) 和only
"^([^\\*]+)\\*([^\\*]+)\\*([^\\*]+)\\*([^\\*]+)$";这个确实可以,我也明白这个意思了,
但是我现在不明天为啥
这个不行
pp = "^(.+)\\*(.+)\\*(.+)\\*(.+)$";

请高手开讲
windonly00 2006-06-20
  • 打赏
  • 举报
回复
第一个^ 表示一行的开头, 中间的^ 是非的意思
JDK中的描述:
^ The beginning of a line
$ The end of a line
treeroot 2006-06-20
  • 打赏
  • 举报
回复
^匹配一行的开始
$匹配一行的结尾
litsnake1 2006-06-20
  • 打赏
  • 举报
回复
楼上only兄弟的方法可行,
能不能解释一下你这个为啥可以,
为啥"(.+)\\*(.+)\\*(.+)\\*(.+)$";这个不行

还是你的最前面的^是干吗用的,修饰那个的

谢谢
vance2005 2006-06-20
  • 打赏
  • 举报
回复
up
windonly00 2006-06-20
  • 打赏
  • 举报
回复
String patern = "^([^\\*]+)\\*([^\\*]+)\\*([^\\*]+)\\*([^\\*]+)$";
litsnake1 2006-06-20
  • 打赏
  • 举报
回复
楼上兄弟,这个也不行,还是2个都能匹配,还有没有别的
Trainsp0tting 2006-06-20
  • 打赏
  • 举报
回复
"(.+)\\*(.+)\\*(.+)\\*(.+)$";
$ 行的结尾
litsnake1 2006-06-20
  • 打赏
  • 举报
回复
高手帮忙解决一下这个问题,谢谢了

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧