京东11.11大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9109|回复: 0

正则表达式匹配括号外的符号及数据

[复制链接]

17

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2019-9-9 08:12:36 | 显示全部楼层 |阅读模式 来自 中国
正则表达式匹配括号外的符号7 Y6 H' O" z8 \6 I' ?; j
[\\?!/\\.,\\s]+(?=[^\\)]*(\\(|$)): {, V6 q  b5 O* S  K+ M1 Z
将括号外的?!/.,和空格(连续多个时同时)匹配
2 M6 L& R/ n% L1 _/ X0 k
/ l) M; m% `% P$ C% m
  1. String string1 = "sdfsdf sdlfksd sdf,fsdf&sdf(s:1,g:1) sdfsd sdf! ? . sdfl asdf "; String[] str = string1.split("[\\?!/\\.,\\s]+(?=[^\\)]*(\\(|$))"); for(String s:str){  System.out.println(s); }
复制代码
结果:" [8 M% F" i* |2 _
sdfsdf( }8 i% `# m& q! f# B4 A, n
sdlfksd' C$ x& \2 e* o6 M' e
sdf
( B0 A5 R' r/ R( _" P( Gfsdf&sdf(s:1,g:1)- r  Q; s# X. e% n- a; x
sdfsd
7 L1 f% _7 t; c/ v. _sdf8 p6 f" J# I, f, k+ l6 B7 X7 H
sdfl! L; X7 D/ S4 q3 \# }
asdf6 E$ G2 v2 i, i" B" d! L
下面看下用正则表达式匹配括号外的数据" h7 Z: v. `2 J
用正则匹配括号内的数据,这个较容易实现,但是匹配括号外的数据,貌似就比较困难了.例如:2 S$ G$ S# G& @* l7 L! b/ \
"{controller}/cc/{action}/{id}"
- \$ i' _, m6 v/ }我想得到/cc/,/ 这两个括号外的数据.
9 `; I& |5 }/ i2 s如果是匹配括号内的数据(包括括号),这个可以用这段正则实现
1 k5 V# \4 n5 A( x( ^$ q- _" ~/{[^}]+}/
+ W: i6 p( Q  r9 b; x: t测试代码(javascript实现):7 g8 z7 z# w7 C, n, M! M/ E2 X% k
"{controller}/cc/{action}/{id}".replace(/{[^}]+}/ g,'-')
8 p( z! ^5 e8 m8 [$ i2 {1 {但是提取括号外的内容,困难得很啊.不知道哪位可以实现这个需求?7 a, y2 R8 s0 y+ j' p* ^& O; \
几个特殊的字符串:
  1. "{controller}/cc/{action}/{id}}"   匹配到空字符串"{controller}}/cc/{action}/{id}"  匹配到:}/cc/, /
复制代码
总结' Y8 |2 A+ Q  n  c8 H
以上所述是小编给大家介绍的正则表达式匹配括号外的符号及数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!* i% N' y4 z% r" U, T: G9 b' F
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
" n7 X* U% ~; q5 O  n* R1 D7 F9 q( G  a) Q! j% [
来源:http://www.jb51.net/article/163977.htm$ @4 w3 {2 R9 ~9 D
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

帖子地址: 

梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )

GMT+8, 2025-2-23 21:58 , Processed in 0.048373 second(s), 26 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表