[英]RegEx search and replace in pattern
我需要搜索一個模式,該模式可以隨文檔的不同而變化,但是遵循一定的模式。 模式將始終是9個數字,后跟3個字母。 有時它們之間會有一個空間,有時則沒有。 這是要搜索的文本示例:
我當前的正則表達式如下: .+?(?=(JJK|FLE|PSC|SCR))
。 這將返回第1、3、4、7和8行,如下所示:1。
照原樣,但不返回字母。 我需要用字母返回這些行並刪除空格(如果有的話)。 我返回的結果應如下所示:
讓我們逐步編寫您要查找的正則表達式。
您需要匹配的是:
\\d{9}
\\s?
[AZ]{3}
(如果字母可能是小寫,請使用[a-zA-Z]{3}
) 放在一起,此正則表達式幾乎可以滿足您的要求:
\d{9}\s?[A-Z]{3}
我說“差不多”是因為它不能讓您擺脫數字和字母之間的空格。 為此,您需要將字母和數字放入捕獲組中-之后,您可以簡單地將捕獲的子字符串連接起來(使用$1$2
或\\1\\2
的替換表達式)來獲取所需的確切內容。
(\d{9})\s?([A-Z]{3})
如果要確保每個數字字母組都在其單獨的行上,只需將整個正則表達式包裝在^
和$
,然后在以下兩種模式下將其運行,即這兩個字符與行的開頭/結尾匹配,而不是整個字符串的開頭/結尾。
^(\d{9})\s?([A-Z]{3})$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.