亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java/Groovy - 字符串:替換匹配的正則表達式上的字符

Java/Groovy - 字符串:替換匹配的正則表達式上的字符

HUX布斯 2023-01-05 17:00:32
我在創建將從字符串示例獲取的匹配正則表達式時遇到問題:NotificationGroup_n+En,其中 n 是 1-4 的數字,當我說我匹配范圍內的所需數字時,我將用該特定數字替換或刪除它。處理前的字符串:NotificationGroup_4+E3處理后的字符串:NotificationGroup_E3我刪除了 n(1-4 中的數字)并將 _E 保留為數字我的問題是如何在 string.replace 函數中編寫正則表達式以匹配數字而不是加號并只留下帶 _En 的字符串def String string = "Notification_Group_4+E3";    println(removeChar(string));}public static def removeChar(String string) {     if ((string.contains("1+"))||(string.contains("2+")||(string.contains("3+"))||(string.contains("4+")))) {        def stringReplaced = string.replace('4+', "");        return stringReplaced;    }}
查看完整描述

3 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

在常規中:


def result = "Notification_Group_4+E3".replaceFirst(/_\d\+(.*)/, '_$1')

println result

輸出:


~>  groovy solution.groovy

Notification_Group_E3


~> 

在線試用!

正則表達式的可視化如下所示:

http://img1.sycdn.imooc.com//63b691cf0001c45902930093.jpg

正則解釋:

  1. 我們使用groovy 斜杠字符串 /.../來定義正則表達式。這使轉義更簡單

  2. 我們首先匹配下劃線_

  3. 然后我們使用預定義字符類匹配單個數字 (0-9) \d ,如 java Pattern 類的 javadoc 中所述

  4. 然后我們匹配一個+字符。我們必須用反斜杠轉義它,\因為+在正則表達式中不轉義意味著“一個或多個”(請參閱 javadocs 中的貪婪量詞)。我們不想要一個或多個,我們只想要一個+角色。

  5. 然后,我們使用 parens 表達式創建一個正則表達式捕獲組,如java 模式正則表達式的邏輯運算符部分中所述(.*)。我們這樣做是為了不被鎖定在以 結尾的輸入字符串中E3。這樣,輸入字符串可以以任意字符串結尾,并且該模式仍然有效。這實質上是說“捕獲一個組并包含任何字符(即.in regex)任意次數(即*in regex)”,這意味著“只捕獲該行的其余部分,無論它是什么”。

  6. 最后我們替換為_$1,即只是下劃線后跟捕獲組捕獲的任何內容。這$1是對“第一個捕獲組”的“反向引用”,如 java Matcher javadocs中所述。


查看完整回答
反對 回復 2023-01-05
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

在這里試試這個正則表達式(\d.*?\+) 演示

在爪哇中:

String string = "Notification_Group_4+E3";
System.out.print(string.replaceAll("\\d.*?\\+", ""));

輸出 :

Notification_Group_E3


查看完整回答
反對 回復 2023-01-05
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

簡單的單線:


String res = 'Notification_Group_4+E3'.replaceAll( /_\d+\+/, '_' )

assert 'Notification_Group_E3' == res


查看完整回答
反對 回復 2023-01-05
  • 3 回答
  • 0 關注
  • 658 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號