Re: 如何判斷一個字符串是否有重複字符並提取出來?這是擺脫重複的一種方法
theList = Words( "abp-g5.GAIV_0099_P013_GAIV_0099_P013", "_." );
For( i = N Items( theList ), i >= 1, i--,
If( N Rows( Loc( theList, theList[i] ) ) > 1,
Remove From( theList, i, 1 )
)
);
newName = theList[1] || "." || theList[2];
For( i = 3, i <= N Items( theList ), i++,
newName = newName || "_" || theList[i]
);
Re: 如何判斷一個字符串是否有重複字符並提取出來?幾個問題:
- 你認為什麼是“詞”? 用“_”和“.”分隔的任何東西?
- 如果有多個重複項怎麼辦? 是否全部提取/僅最短/僅最長/無?
- 複製可以發生在字符串中的任何一點嗎? 重複的部分總是在最後嗎?
Re: 如何判斷一個字符串是否有重複字符並提取出來?謝謝,你的方法很好!
Re: 如何判斷一個字符串是否有重複字符並提取出來?謝謝,這確實是一個實際問題::
每當該字符中有 GAI 時,無論出現多少次,只要重複出現,就提取以它開頭的字符之一。
而且肯定會有重複的。
Re: 如何判斷一個字符串是否有重複字符並提取出來?這是個有趣的問題。 我喜歡@txnelson的解決方案。 除了他的方法,這是正則表達式可以得心應手的情況,所以這裡是另一種方法。
提供的兩個示例具有以下模式:
- 可能存在前綴,例如“abp-g5”。
- 所需的字符串/字符在前綴之後
- 重複/重複的字符與所需的字符串/字符完全匹配
- 重複/重複的字符通過下劃線與所需字符分隔
- 除了字符串末尾的重複字符外,別無其他
- 至少存在一個重複/重複的字符串/字符
假設這些規則準確定義了需要更改的列名,下面的代碼將更新“當前數據表”中所有符合上述假設的列名。 不符合假設的列名將不會更改。
names default to here(1);
dt = current data table();
for( k = 1, k <= n cols(dt), k++,
colName = column(dt, k) << get name();
colName = regex( colName, "^.*?(.+)(?:_\1)+$", "\1" );
try( column(dt, k) << set name( colName ) );
);
如何判斷一個字符串是否有重複字符並提取出來?我現在有一個包含 1000 多個列的表,並且大多數列名都有重複的單詞需要提取。 請教大佬們,用JSL如何實現呢?
例如:
列名為abp-g5.GAIV_0099_P013_GAIV_0099_P013,然後提取GAIV_0099_P013;
列名是abp-g5.GAI1997_GAI1997,然後提取GAI1997
自動化和腳本編寫蘋果系統大規模定制