我希望使用正則運算式函式分離以下資料,如下所示:

要使用的功能:
let fx=(text,regex)=>
Web.Page(
"<script>
var x='"&text&"';
var y=new RegExp('"®ex&"','g');
var b=x.match(y);
document.write(b);
</script>")[Data]{0}[Children]{0}[Children]{1}[Text]{0}
in
fx
協議:
- 文本 - Column1
- 專案清單
正則運算式 -\\d \\.?\\d
這成功地提取了數值,但是:
- 我不確定這是否是洗掉第一個整數/數字的正確正則運算式。
- 我不確定如何使用正則運算式僅提取單位。盡管進行了各種嘗試,它似乎還是遇到了錯誤。例如
資料:
1200 mg/kg bw/day 24 mg/kg/day 0.79 mg/kg bw/day 15 ng/m3 15 ng/m 3 Not Limited 30mg/m3uj5u.com熱心網友回復:
函式本身沒有問題,問題在于使用的模式:
數字部分:您目前使用
\\d \\.?\\d的基本上是指;“任何 1 數字后跟一個可選的點和至少另外 1 數字”。因此,字串中的任何位置至少有兩個數字。適當的正則運算式是:^\\d (?:\\.\\d )?意義:
^- 起跑線錨;\\d- 1 (貪婪)數字;(?:\\.\\d )?- 可選的非捕獲組,以匹配文字點,后跟至少 1 個以上的數字。
單位:您的模式
[\D ][2]匹配第一類中的單個字符,該字符可以是非數字或文字加號。您的第二個字符類與文字 2 匹配。因此您正在尋找“A2”或“ 2”等模式。適當的正則運算式將取決于您的輸入。
建議:
在

let Source = Excel.CurrentWorkbook(){[Name="Tabel1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}), #"Invoked Custom Function1" = Table.AddColumn(#"Changed Type", "Nr", each fnRegexExtr([Column1], "^(\\d (?:\\.\\d )?)?\\s*(. )$", "$1")), #"Invoked Custom Function2" = Table.AddColumn(#"Invoked Custom Function1", "Unit", each fnRegexExtr([Column1], "^(\\d (?:\\.\\d )?)?\\s*(. )$", "$2")), #"Replaced Errors" = Table.ReplaceErrorValues(#"Invoked Custom Function2", {{"Nr", null}, {"Unit", null}}) in #"Replaced Errors"
第二個選項是用分隔符替換該值,您稍后會在該分隔符上拆分:
let Source = Excel.CurrentWorkbook(){[Name="Tabel1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}), #"Invoked Custom Function" = Table.AddColumn(#"Changed Type", "fnRegexExtr", each fnRegexExtr([Column1], "^(\\d (?:\\.\\d )?)?\\s*(. )$", "$1|$2")), #"Split Column by Delimiter" = Table.SplitColumn(#"Invoked Custom Function", "fnRegexExtr", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Nr", "Unit"}) in #"Split Column by Delimiter"uj5u.com熱心網友回復:
感謝您發布。看起來您需要將字符匹配到第一個空格。為此,您可以使用以下正則運算式。
^[^\s]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/475202.html下一篇:如何修復下拉按鈕(HTML)
