|
正则表达式匹配括号外的符号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- 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; \
几个特殊的字符串:- "{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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|