|
@@ -1,6 +1,7 @@
|
|
|
package clear
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
qu "qfw/util"
|
|
|
"regexp"
|
|
|
"strings"
|
|
@@ -111,7 +112,7 @@ func RemoveStart(i int, text []rune) []rune {
|
|
|
lock.Lock()
|
|
|
fdSymbol := SymmetricMap[now]
|
|
|
lock.Unlock()
|
|
|
- if fdSymbol != "" { //反向符号,找出对称的正向符号
|
|
|
+ if fdSymbol != "" && fdSymbol != now { //反向符号,找出对称的正向符号(fdSymbol != now:处理正反向符号是"或者')
|
|
|
tmp := symbolIndex[fdSymbol]
|
|
|
if len(tmp) == 0 { //多出来的反向符号,记录最大值
|
|
|
if index > surplusMax {
|
|
@@ -250,44 +251,48 @@ func AnotherRemoveStart(text []rune) []rune {
|
|
|
lock.Lock()
|
|
|
fdSymbol := SymmetricMap[now]
|
|
|
lock.Unlock()
|
|
|
- if fdSymbol != "" { //去除第一个反符号
|
|
|
- text = text[1:len(text)]
|
|
|
- } else if len(now) > 0 { //第一个是正符号,记录索引位置
|
|
|
- tmpArr := []int{index}
|
|
|
- symbolIndex[now] = tmpArr
|
|
|
+ if fdSymbol != now { //(fdSymbol != now:处理正反向符号是"或者')
|
|
|
+ if fdSymbol != "" { //去除第一个反符号
|
|
|
+ text = text[1:len(text)]
|
|
|
+ } else if len(now) > 0 { //第一个是正符号,记录索引位置
|
|
|
+ tmpArr := []int{index}
|
|
|
+ symbolIndex[now] = tmpArr
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
lock.Lock()
|
|
|
fdSymbol := SymmetricMap[now]
|
|
|
lock.Unlock()
|
|
|
- if fdSymbol != "" { //反向符号,找出对称的正向符号
|
|
|
- tmp := symbolIndex[fdSymbol]
|
|
|
- if len(tmp) == 0 { //多出来的反向符号,记录最大值
|
|
|
- if index > surplusMax {
|
|
|
- surplusMax = index
|
|
|
+ if fdSymbol != now { //(fdSymbol != now:处理正反向符号是"或者')
|
|
|
+ if fdSymbol != "" { //反向符号,找出对称的正向符号
|
|
|
+ tmp := symbolIndex[fdSymbol]
|
|
|
+ if len(tmp) == 0 { //多出来的反向符号,记录最大值
|
|
|
+ if index > surplusMax {
|
|
|
+ surplusMax = index
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ nowIndex := tmp[len(tmp)-1] //索引位置
|
|
|
+ symbolIndex[fdSymbol] = tmp[:len(tmp)-1] //匹配索引位置后,删除之前的记录
|
|
|
+ if len(symbolIndex[fdSymbol]) == 0 {
|
|
|
+ delete(symbolIndex, fdSymbol)
|
|
|
+ }
|
|
|
+ //将成对的符号的index记录,
|
|
|
+ if index == length-1 {
|
|
|
+ pairedIndex[index] = nowIndex
|
|
|
+ }
|
|
|
+ pairedIndex[nowIndex] = index
|
|
|
+ tmpLength = tmpLength + len(text[nowIndex:index+1])
|
|
|
}
|
|
|
- } else {
|
|
|
- nowIndex := tmp[len(tmp)-1] //索引位置
|
|
|
- symbolIndex[fdSymbol] = tmp[:len(tmp)-1] //匹配索引位置后,删除之前的记录
|
|
|
- if len(symbolIndex[fdSymbol]) == 0 {
|
|
|
- delete(symbolIndex, fdSymbol)
|
|
|
+ } else { //正向符号,加入symbolIndex记录索引
|
|
|
+ tmpArr := []int{}
|
|
|
+ if len(symbolIndex[now]) > 0 { //有该符号的索引位置
|
|
|
+ tmpArr = symbolIndex[now]
|
|
|
+ tmpArr = append(tmpArr, index)
|
|
|
+ } else { //没有该符号的索引位置
|
|
|
+ tmpArr = []int{index}
|
|
|
}
|
|
|
- //将成对的符号的index记录,
|
|
|
- if index == length-1 {
|
|
|
- pairedIndex[index] = nowIndex
|
|
|
- }
|
|
|
- pairedIndex[nowIndex] = index
|
|
|
- tmpLength = tmpLength + len(text[nowIndex:index+1])
|
|
|
- }
|
|
|
- } else { //正向符号,加入symbolIndex记录索引
|
|
|
- tmpArr := []int{}
|
|
|
- if len(symbolIndex[now]) > 0 { //有该符号的索引位置
|
|
|
- tmpArr = symbolIndex[now]
|
|
|
- tmpArr = append(tmpArr, index)
|
|
|
- } else { //没有该符号的索引位置
|
|
|
- tmpArr = []int{index}
|
|
|
+ symbolIndex[now] = tmpArr
|
|
|
}
|
|
|
- symbolIndex[now] = tmpArr
|
|
|
}
|
|
|
}
|
|
|
}
|