|
正则表达式匹配括号外的符号
! k8 i9 N. {- l2 T* Q[\\?!/\\.,\\s]+(?=[^\\)]*(\\(|$))
7 ?: N( O0 s- u; l1 ]7 Z* }4 M将括号外的?!/.,和空格(连续多个时同时)匹配1 b+ ^/ Y" h. o5 w& C6 u+ \4 D
如
( g5 Y1 O2 ]# `5 `: _* ^- 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); }
复制代码 结果:. d; P( D8 g/ o1 h& ~$ r! A0 ]
sdfsdf% F8 I7 T, j" G9 z) o2 r; J
sdlfksd* z V6 E5 z: q" C. {4 Z0 S
sdf4 r! u4 I$ [, @% Q. j& a9 q
fsdf&sdf(s:1,g:1)
9 I9 C) g. t' v, e# w" d6 Tsdfsd
* N1 H% N8 k, x+ Z% d. a4 fsdf0 N [ |/ e" J& H: p# P/ v3 T
sdfl
& [- R. O, H' x: m M; Nasdf0 `' h* o5 R$ H [$ l
下面看下用正则表达式匹配括号外的数据
$ F4 @( L3 [9 P- @, Z7 @用正则匹配括号内的数据,这个较容易实现,但是匹配括号外的数据,貌似就比较困难了.例如:
# v8 H/ T! J; B& v. x7 u"{controller}/cc/{action}/{id}"
1 s: y* s% U# D我想得到/cc/,/ 这两个括号外的数据.8 e* d. o6 M, E# c; o
如果是匹配括号内的数据(包括括号),这个可以用这段正则实现% s' v1 i b' f" P4 H
/{[^}]+}/0 L7 [3 i9 B( }2 C7 s
测试代码(javascript实现):
0 b5 V% r/ E+ L9 C0 r) H& c+ g"{controller}/cc/{action}/{id}".replace(/{[^}]+}/ g,'-')7 {3 D% C' Q- q& H2 Z3 u
但是提取括号外的内容,困难得很啊.不知道哪位可以实现这个需求?
- u+ V. Y1 D+ U4 h几个特殊的字符串:- "{controller}/cc/{action}/{id}}" 匹配到空字符串"{controller}}/cc/{action}/{id}" 匹配到:}/cc/, /
复制代码 总结4 ?0 h# I5 C* Y
以上所述是小编给大家介绍的正则表达式匹配括号外的符号及数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!# L6 W) o, o5 N& ^
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
" s. v7 {0 \$ W+ Z6 S4 S* R# |
/ i5 W" x9 A* K9 O, [# d来源:http://www.jb51.net/article/163977.htm
, V/ k" b& M9 \& E( {: ~' ]. o免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|