正則表達式函數將字母和字母與一個數字匹配,它們之間沒有空格大家好,
我有一個字符串“9 035 表徵 STD4 1 1 的分析活動測試”。我只想匹配“表徵 STD4 的測定活性測試”
我嘗試使用:Regex( :Sample Name, "\d", "", GLOBALREPLACE );但它降低了 STD 的數量,有什麼建議嗎?
謝謝
回复:正則表達式函數,用於匹配字母和字母與一個數字之間沒有空格非常感謝您的幫助,規則的解釋也很有幫助。我發現我需要修剪每一個獨立的數字,下面的工作非常完美。
"(\D+(\w+\w))+"
回复:正則表達式函數,用於匹配字母和字母與一個數字之間沒有空格Justin 的示例可能很完美,但如果不知道您正在使用的規則,則很難判斷。 規則可能是刪除所有前導數字和空格,或者可能是從“Assay”開始。 在另一端,規則可能是刪除最後兩個以空格分隔的數字,或者除最後一個數字之外的所有數字,或者最後一個數字之後與單詞相關的所有數字。 這些只是一些可能的規則。 一旦你知道了規則,讓正則表達式遵循它就變得更容易了。
如果您對 Justin 的示例感到困惑,請這樣閱讀:
( ... )+ 表示匹配括號內的內容一次或多次
[az]+ 表示匹配一個或多個字母
\d?表示匹配一位或零位數字
\s 表示匹配一個空格
parens 匹配的每個“單詞”都包括一個可選的尾隨數字和一個必需的尾隨空格,甚至是最後一個單詞。 Justin 使用 trim 函數從結果中刪除最後的空格。 如果您的數據在最後一個詞後可能沒有空格,則不會包含最後一個詞。
回复:正則表達式函數,用於匹配字母和字母與一個數字之間沒有空格您可以匹配要保留的字符串部分,而不是進行全局替換。
此正則表達式適用於您提供的字符串,但如果其他字符串的格式差異太大,則可能無效。
Trim(
Regex(
"9 035 Assay Activity Testing For Characterization STD4 1 1",
"([a-z]+\d?\s)+",
"\0",
IGNORECASE
)
);
日誌:
"Assay Activity Testing For Characterization STD4"