簡體   English   中英

正則表達式查找字符串中的尾隨字母

[英]Regex to find trailing letter in a string

我在字符串中有一個SQL查詢,它是動態構建的。 有時,它將包含形式為"1000M"的小數。

M始終為大寫。 因此字符串可能如下所示:

"3 sql stmts here 10009M some other 3 sql stmts here"

我想知道是否有可能可靠且始終如一地刪除M 所以字符串看起來像這樣:

"3 sql stmts here 10009 some other 3 sql stmts here"

我開始考慮正則表達式:

[0-9][M]

這將與MM本身之前的數字匹配。

我想知道是否可以使用正則表達式,除非有更好的方法

您可以使用

var res = Regex.Replace(str, @"(\d+)M\b", "$1");

參見演示

(\\d+)匹配並捕獲到組1中一個或多個數字,並且M\\b匹配一個M ,其后跟一個非單詞字符或在字符串的末尾。

使用$1 (對組1的反向引用),我們可以訪問與第一個捕獲組(...)匹配的內容。

我認為您需要一個空格邊界,而不是單詞邊界。

查找: (?<=(?<!\\S)\\d+)M(?!\\S)
更換:無

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM