@@ -112,24 +112,25 @@ lazy_static! {
112
112
// ()【】「」《》
113
113
static ref LEFT_QUOTE_RE : Regex = regexp!( "{}" , r" ([(【「《])" ) ;
114
114
static ref RIGHT_QUOTE_RE : Regex = regexp!( "{}" , r"([)】」》]) " ) ;
115
+
115
116
// Strategies all rules
116
117
static ref STRATEGIES : Vec <Strategery > = vec![
117
118
// EnglishLetter, Number
118
- // But not start with %, $, \ for avoid change %s, %d, $1, $2, \d, \r, \p ... in source code
119
- Strategery :: new( r"\p{CJK}[^%\$\\]" , r"[a-zA-Z0-9]" , true , false ) ,
120
- Strategery :: new( r"[^%\$\\][ a-zA-Z0-9]" , r"\p{CJK}" , true , false ) ,
119
+ // But not start with %, $, \ for avoid change %s, %d, $1, $2, \1, \2, \ d, \r, \p ... in source code
120
+ Strategery :: new( r"\p{CJK}[^%\$\\]" , r"[a-zA-Z0-9]" ) ,
121
+ Strategery :: new( r"[a-zA-Z0-9]" , r"\p{CJK}" ) ,
121
122
// 10%中文
122
- Strategery :: new( r"[0-9][%]" , r"\p{CJK}" , true , false ) ,
123
+ Strategery :: new( r"[0-9][%]" , r"\p{CJK}" ) ,
123
124
// SpecialSymbol
124
- Strategery :: new( r"\p{CJK}" , r"[\|+]" , true , true ) ,
125
+ Strategery :: new( r"\p{CJK}" , r"[\|+]" ) . with_reverse ( ) ,
125
126
// @ after CJK, not not before, 你好 @某某
126
- Strategery :: new( r"\p{CJK}" , r"[@]" , true , false ) ,
127
- Strategery :: new( r"\p{CJK}" , r"[\[\(]" , true , false ) ,
128
- Strategery :: new( r"[\]\)!]" , r"\p{CJK}" , true , false ) ,
127
+ Strategery :: new( r"\p{CJK}" , r"[@]" ) ,
128
+ Strategery :: new( r"\p{CJK}" , r"[\[\(]" ) ,
129
+ Strategery :: new( r"[\]\)!]" , r"\p{CJK}" ) ,
129
130
130
131
// FullwidthPunctuation remove space case, Fullwidth can safe to remove spaces
131
- Strategery :: new( r"[\w\p{CJK}]" , r"[,。!?:;)」》】”’]" , false , true ) ,
132
- Strategery :: new( r"[‘“【「《(]" , r"[\w\p{CJK}]" , false , true ) ,
132
+ Strategery :: new( r"[\w\p{CJK}]" , r"[,。!?:;)」》】”’]" ) . with_remove_space ( ) . with_reverse ( ) ,
133
+ Strategery :: new( r"[‘“【「《(]" , r"[\w\p{CJK}]" ) . with_remove_space ( ) . with_reverse ( ) ,
133
134
] ;
134
135
}
135
136
@@ -283,6 +284,7 @@ mod tests {
283
284
#[ test]
284
285
fn it_format_for_programming ( ) {
285
286
let cases = map ! [
287
+ "A开头的case测试" => "A 开头的 case 测试" ,
286
288
"内容带有\n 不会处理" => "内容带有\n 不会处理" ,
287
289
"内容带有%s或%d或%v特殊字符,或者%S或%D或%V这些特殊format字符" => "内容带有%s或%d或%v特殊字符,或者%S或%D或%V这些特殊 format 字符" ,
288
290
"内容带有$1或$2或$3特殊字符" => "内容带有$1或$2或$3特殊字符"
0 commit comments