|
|
正则表达式匹配括号外的符号* Q+ N6 W- B" B
[\\?!/\\.,\\s]+(?=[^\\)]*(\\(|$))
' B1 \) Y/ e/ C, b0 G/ C将括号外的?!/.,和空格(连续多个时同时)匹配
0 z7 ~$ {% g. m6 K如1 S& |$ g7 f2 [- ^
- 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); }
复制代码 结果:
! A. _" S' x; |" M; h1 A" \4 msdfsdf
. A4 _/ N1 a$ s2 Z3 ?+ o7 G, dsdlfksd+ v$ t1 V1 S7 j6 w
sdf
- \1 \, E0 `2 Q! h6 Nfsdf&sdf(s:1,g:1)
$ V0 [, h6 r" o/ _sdfsd
+ `* g) ^5 {6 Y( r5 M: r6 f8 s; isdf
7 A2 t0 A8 u# p* Csdfl+ B0 C3 y5 X% K7 b# X
asdf% ^. ~$ O" T- g( t n5 K# k! T
下面看下用正则表达式匹配括号外的数据5 d* P( _; j- F8 N% ~
用正则匹配括号内的数据,这个较容易实现,但是匹配括号外的数据,貌似就比较困难了.例如:
J: P- z) ~7 |$ N; l; b# t"{controller}/cc/{action}/{id}"
5 O% X' x" ]6 Y S我想得到/cc/,/ 这两个括号外的数据.# P f5 g. \* I& }6 i7 e; W/ U; X L
如果是匹配括号内的数据(包括括号),这个可以用这段正则实现
7 ^) F+ H& Z a5 l+ W+ y$ l/{[^}]+}/
, ~$ R7 ?. ?# z% b测试代码(javascript实现):7 ]2 l7 y, Q' `' d/ i; W
"{controller}/cc/{action}/{id}".replace(/{[^}]+}/ g,'-')3 t- X8 x2 w/ s$ B
但是提取括号外的内容,困难得很啊.不知道哪位可以实现这个需求?
0 @$ D0 s: o. G" `( @几个特殊的字符串:- "{controller}/cc/{action}/{id}}" 匹配到空字符串"{controller}}/cc/{action}/{id}" 匹配到:}/cc/, /
复制代码 总结
- \5 x& O- ~, t, V+ v6 Y以上所述是小编给大家介绍的正则表达式匹配括号外的符号及数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
( l$ d/ j# ~; o( o如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!9 t6 K5 } f1 l7 [) ?
: w' {8 o+ S$ ^" S5 \1 u1 h
来源:http://www.jb51.net/article/163977.htm# |! \, h- `$ |* P# W7 g
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|