簡體   English   中英

Golang 使用正則表達式拆分字符串

[英]Golang Split String with Regexp

我有一個字符串,我用正則表達式 package 拆分了該字符串。但是我無法創建我需要的正則表達式。

正則表達式代碼行:

v = "@636e0e0eac0bd25cd5df92a3$636e0e49ac0bd25cd5df92a5.result.result[0].code.xTrim()"
r, _ := regexp.Compile(`(@[a-zA-Z0-9]+\$[a-zA-Z0-9]+)(.*)`)
variableParts := r.FindStringSubmatch(v)

VariablesParts 數組:

0:“@636e0e0eac0bd25cd5df92a3$636e0e49ac0bd25cd5df92a5.result.result[0].code.xTrim()”

1: "@636e0e0eac0bd25cd5df92a3$636e0e49ac0bd25cd5df92a5"

2:“.result.result[0].code.xTrim()”

這是我想要的結果:

數組長度可以更改,但數組應包含這 4 個字符串。

0:“@636e0e0eac0bd25cd5df92a3$636e0e49ac0bd25cd5df92a5.result.result[0].code.xTrim()”

1: "@636e0e0eac0bd25cd5df92a3$636e0e49ac0bd25cd5df92a5"

2:“.result.result[0].code.xTrim()”

3: ".xTrim()"

我怎樣才能得到這個結果。 我需要哪個正則表達式字符串?


更新新的期望結果:

1: "@636e0e0eac0bd25cd5df92a3$636e0e49ac0bd25cd5df92a5"

2:“.result.result[0].code.xTrim()”

3:“.結果”

4:“.結果[0]”

5:“.代碼”

6: “.xTrim()”

您可以將最后一個(.*)部分替換為(.*(\.[^.]*))$並使用

(@[a-zA-Z0-9]+\$[a-zA-Z0-9]+)(.*(\.[^.]*))$

請參閱正則表達式演示 詳情

  • (@[a-zA-Z0-9]+\$[a-zA-Z0-9]+) - 第 1 組:一個@字符,然后是一個或多個字母數字字符,然后是一個#字符,然后再是一個或多個字母數字字符
  • (.*(\.[^.]*)) - 第 2 組:除換行符以外的任何零個或多個字符盡可能多,然后是第 3 組:a . , 除 a 以外的零個或多個字符. 字符
  • $ - 在字符串的末尾。 如果右側可以有更多文本,則將其刪除。

暫無
暫無

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

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