@@ -636,17 +636,20 @@ impl str {
636
636
///
637
637
/// let v: Vec<&str> = "lion::tiger::leopard".split("::").collect();
638
638
/// assert_eq!(v, ["lion", "tiger", "leopard"]);
639
- /// ```
640
- ///
641
- /// More complex patterns with closures:
642
639
///
643
- /// ```
644
- /// let v: Vec<&str> = "abc1def2ghi".split(|c: char| c.is_numeric()).collect();
640
+ /// let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect();
645
641
/// assert_eq!(v, ["abc", "def", "ghi"]);
646
642
///
647
643
/// let v: Vec<&str> = "lionXtigerXleopard".split(char::is_uppercase).collect();
648
644
/// assert_eq!(v, ["lion", "tiger", "leopard"]);
649
645
/// ```
646
+ ///
647
+ /// A more complex pattern, using a closure:
648
+ ///
649
+ /// ```
650
+ /// let v: Vec<&str> = "abc1defXghi".split(|c| c == '1' || c == 'X').collect();
651
+ /// assert_eq!(v, ["abc", "def", "ghi"]);
652
+ /// ```
650
653
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
651
654
pub fn split < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> Split < ' a , P > {
652
655
core_str:: StrExt :: split ( & self [ ..] , pat)
@@ -687,14 +690,11 @@ impl str {
687
690
/// assert_eq!(v, ["leopard", "tiger", "lion"]);
688
691
/// ```
689
692
///
690
- /// More complex patterns with closures :
693
+ /// A more complex pattern, using a closure :
691
694
///
692
- /// ```rust
693
- /// let v: Vec<&str> = "abc1def2ghi ".rsplit(|c: char| c.is_numeric() ).collect();
695
+ /// ```
696
+ /// let v: Vec<&str> = "abc1defXghi ".rsplit(|c| c == '1' || c == 'X' ).collect();
694
697
/// assert_eq!(v, ["ghi", "def", "abc"]);
695
- ///
696
- /// let v: Vec<&str> = "lionXtigerXleopard".rsplit(char::is_uppercase).collect();
697
- /// assert_eq!(v, ["leopard", "tiger", "lion"]);
698
698
/// ```
699
699
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
700
700
pub fn rsplit < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> RSplit < ' a , P >
@@ -729,22 +729,13 @@ impl str {
729
729
///
730
730
/// # Examples
731
731
///
732
- /// Simple patterns:
733
- ///
734
732
/// ```
735
733
/// let v: Vec<&str> = "A.B.".split_terminator('.').collect();
736
734
/// assert_eq!(v, ["A", "B"]);
737
735
///
738
736
/// let v: Vec<&str> = "A..B..".split_terminator(".").collect();
739
737
/// assert_eq!(v, ["A", "", "B", ""]);
740
738
/// ```
741
- ///
742
- /// More complex patterns with closures:
743
- ///
744
- /// ```
745
- /// let v: Vec<&str> = "abc1def2ghi3".split_terminator(|c: char| c.is_numeric()).collect();
746
- /// assert_eq!(v, ["abc", "def", "ghi"]);
747
- /// ```
748
739
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
749
740
pub fn split_terminator < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> SplitTerminator < ' a , P > {
750
741
core_str:: StrExt :: split_terminator ( & self [ ..] , pat)
@@ -774,22 +765,13 @@ impl str {
774
765
///
775
766
/// # Examples
776
767
///
777
- /// Simple patterns:
778
- ///
779
768
/// ```
780
769
/// let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
781
770
/// assert_eq!(v, ["B", "A"]);
782
771
///
783
772
/// let v: Vec<&str> = "A..B..".rsplit_terminator(".").collect();
784
773
/// assert_eq!(v, ["", "B", "", "A"]);
785
774
/// ```
786
- ///
787
- /// More complex patterns with closures:
788
- ///
789
- /// ```
790
- /// let v: Vec<&str> = "abc1def2ghi3".rsplit_terminator(|c: char| c.is_numeric()).collect();
791
- /// assert_eq!(v, ["ghi", "def", "abc"]);
792
- /// ```
793
775
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
794
776
pub fn rsplit_terminator < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> RSplitTerminator < ' a , P >
795
777
where P :: Searcher : ReverseSearcher < ' a >
@@ -833,11 +815,11 @@ impl str {
833
815
/// assert_eq!(v, [""]);
834
816
/// ```
835
817
///
836
- /// More complex patterns with closures :
818
+ /// A more complex pattern, using a closure :
837
819
///
838
820
/// ```
839
- /// let v: Vec<&str> = "abc1def2ghi ".splitn(2, |c: char| c.is_numeric() ).collect();
840
- /// assert_eq!(v, ["abc", "def2ghi "]);
821
+ /// let v: Vec<&str> = "abc1defXghi ".splitn(2, |c| c == '1' || c == 'X' ).collect();
822
+ /// assert_eq!(v, ["abc", "defXghi "]);
841
823
/// ```
842
824
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
843
825
pub fn splitn < ' a , P : Pattern < ' a > > ( & ' a self , count : usize , pat : P ) -> SplitN < ' a , P > {
@@ -878,10 +860,10 @@ impl str {
878
860
/// assert_eq!(v, ["leopard", "lion::tiger"]);
879
861
/// ```
880
862
///
881
- /// More complex patterns with closures :
863
+ /// A more complex pattern, using a closure :
882
864
///
883
865
/// ```
884
- /// let v: Vec<&str> = "abc1def2ghi ".rsplitn(2, |c: char| c.is_numeric() ).collect();
866
+ /// let v: Vec<&str> = "abc1defXghi ".rsplitn(2, |c| c == '1' || c == 'X' ).collect();
885
867
/// assert_eq!(v, ["ghi", "abc1def"]);
886
868
/// ```
887
869
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -916,7 +898,7 @@ impl str {
916
898
/// let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
917
899
/// assert_eq!(v, ["abc", "abc", "abc"]);
918
900
///
919
- /// let v: Vec<&str> = "1abc2abc3".matches(|c: char| c. is_numeric() ).collect();
901
+ /// let v: Vec<&str> = "1abc2abc3".matches(char:: is_numeric).collect();
920
902
/// assert_eq!(v, ["1", "2", "3"]);
921
903
/// ```
922
904
#[ unstable( feature = "collections" ,
@@ -949,7 +931,7 @@ impl str {
949
931
/// let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
950
932
/// assert_eq!(v, ["abc", "abc", "abc"]);
951
933
///
952
- /// let v: Vec<&str> = "1abc2abc3".rmatches(|c: char| c. is_numeric() ).collect();
934
+ /// let v: Vec<&str> = "1abc2abc3".rmatches(char:: is_numeric).collect();
953
935
/// assert_eq!(v, ["3", "2", "1"]);
954
936
/// ```
955
937
#[ unstable( feature = "collections" ,
@@ -1195,15 +1177,16 @@ impl str {
1195
1177
///
1196
1178
/// ```
1197
1179
/// assert_eq!("11foo1bar11".trim_matches('1'), "foo1bar");
1180
+ /// assert_eq!("123foo1bar123".trim_matches(char::is_numeric), "foo1bar");
1198
1181
///
1199
1182
/// let x: &[_] = &['1', '2'];
1200
1183
/// assert_eq!("12foo1bar12".trim_matches(x), "foo1bar");
1201
1184
/// ```
1202
1185
///
1203
- /// More complex patterns with closures :
1186
+ /// A more complex pattern, using a closure :
1204
1187
///
1205
1188
/// ```
1206
- /// assert_eq!("123foo1bar123 ".trim_matches(|c: char| c.is_numeric() ), "foo1bar");
1189
+ /// assert_eq!("1foo1barXX ".trim_matches(|c| c == '1' || c == 'X' ), "foo1bar");
1207
1190
/// ```
1208
1191
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
1209
1192
pub fn trim_matches < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> & ' a str
@@ -1220,20 +1203,13 @@ impl str {
1220
1203
///
1221
1204
/// # Examples
1222
1205
///
1223
- /// Simple patterns:
1224
- ///
1225
1206
/// ```
1226
1207
/// assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
1208
+ /// assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
1227
1209
///
1228
1210
/// let x: &[_] = &['1', '2'];
1229
1211
/// assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
1230
1212
/// ```
1231
- ///
1232
- /// More complex patterns with closures:
1233
- ///
1234
- /// ```
1235
- /// assert_eq!("123foo1bar123".trim_left_matches(|c: char| c.is_numeric()), "foo1bar123");
1236
- /// ```
1237
1213
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
1238
1214
pub fn trim_left_matches < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> & ' a str {
1239
1215
core_str:: StrExt :: trim_left_matches ( & self [ ..] , pat)
@@ -1251,14 +1227,16 @@ impl str {
1251
1227
///
1252
1228
/// ```
1253
1229
/// assert_eq!("11foo1bar11".trim_right_matches('1'), "11foo1bar");
1230
+ /// assert_eq!("123foo1bar123".trim_right_matches(char::is_numeric), "123foo1bar");
1231
+ ///
1254
1232
/// let x: &[_] = &['1', '2'];
1255
1233
/// assert_eq!("12foo1bar12".trim_right_matches(x), "12foo1bar");
1256
1234
/// ```
1257
1235
///
1258
- /// More complex patterns with closures :
1236
+ /// A more complex pattern, using a closure :
1259
1237
///
1260
1238
/// ```
1261
- /// assert_eq!("123foo1bar123".trim_right_matches (|c: char| c.is_numeric()) , "123foo1bar ");
1239
+ /// assert_eq!("1fooX".trim_left_matches (|c| c == '1' || c == 'X') , "fooX ");
1262
1240
/// ```
1263
1241
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
1264
1242
pub fn trim_right_matches < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> & ' a str
@@ -1494,7 +1472,7 @@ impl str {
1494
1472
/// ```
1495
1473
/// let s = "Löwe 老虎 Léopard";
1496
1474
///
1497
- /// assert_eq!(s.find(|c: char| c. is_whitespace() ), Some(5));
1475
+ /// assert_eq!(s.find(char:: is_whitespace), Some(5));
1498
1476
/// assert_eq!(s.find(char::is_lowercase), Some(1));
1499
1477
/// ```
1500
1478
///
@@ -1536,7 +1514,7 @@ impl str {
1536
1514
/// ```
1537
1515
/// let s = "Löwe 老虎 Léopard";
1538
1516
///
1539
- /// assert_eq!(s.rfind(|c: char| c. is_whitespace() ), Some(12));
1517
+ /// assert_eq!(s.rfind(char:: is_whitespace), Some(12));
1540
1518
/// assert_eq!(s.rfind(char::is_lowercase), Some(20));
1541
1519
/// ```
1542
1520
///
0 commit comments