|
|
正则表达式匹配括号外的符号' s0 `$ E" e: d! k& g& W
[\\?!/\\.,\\s]+(?=[^\\)]*(\\(|$))
" v) r7 b6 Z/ w+ {将括号外的?!/.,和空格(连续多个时同时)匹配! J# T& H5 q9 v9 N# f
如2 s4 u# A! F3 t6 n! B9 o
- 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); }
复制代码 结果:
5 C( E4 C' G( H5 [7 Y3 }8 h% lsdfsdf
, E% D0 K1 P, f# t8 [: Csdlfksd& e4 F3 H6 p5 X7 L& J4 T1 t! b ~
sdf
" E$ F8 u) @: zfsdf&sdf(s:1,g:1). `3 D, n$ v1 ]8 ?
sdfsd+ x: p4 H2 `- F2 u0 M& J
sdf0 I) g; X% @; F0 W, Z8 d3 c$ R/ S
sdfl1 V/ O' T$ v; |
asdf4 r/ G4 k# x' O) \5 ^. {
下面看下用正则表达式匹配括号外的数据
B+ }1 E" i: t }用正则匹配括号内的数据,这个较容易实现,但是匹配括号外的数据,貌似就比较困难了.例如:
( j% J- a/ Z3 Q* o: V- h a: P"{controller}/cc/{action}/{id}") j% v( b1 U$ ]+ l
我想得到/cc/,/ 这两个括号外的数据.: w8 n$ L+ p+ Z+ i7 }" H6 N3 }
如果是匹配括号内的数据(包括括号),这个可以用这段正则实现
+ M4 W1 V4 d& C7 L) X/{[^}]+}/
. N; F* z* ^( T1 r' V测试代码(javascript实现):
# z% R$ _7 K. y4 A% \! |2 F"{controller}/cc/{action}/{id}".replace(/{[^}]+}/ g,'-')5 A4 T2 \4 Y* z. J
但是提取括号外的内容,困难得很啊.不知道哪位可以实现这个需求?
1 q+ h$ e) @& H6 j s" Y几个特殊的字符串:- "{controller}/cc/{action}/{id}}" 匹配到空字符串"{controller}}/cc/{action}/{id}" 匹配到:}/cc/, /
复制代码 总结4 t* m* F- U. M+ Q3 Y
以上所述是小编给大家介绍的正则表达式匹配括号外的符号及数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
4 |" W+ |$ ]3 Q& l, g4 C0 R如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!4 E1 J9 j2 S; D. p( [
4 Y8 o8 a, Q) s; B4 i
来源:http://www.jb51.net/article/163977.htm
- n5 o6 q! B) u! v2 J6 O$ m免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|