我有以下字符串:如何獲得特定字符串後的字符串,然後在另一個字符後獲取唯一的字符串?
P = 1A測試$ A123
我需要一個正則表達式只得到了 「A123」,考慮以下因素:
- 的 「A」 可以是az之間的任何字符(可能多於單個字符)
- 「p =」後面只有1個$符號
- 在「p =」之前可以有其他「$」符號。
有什麼想法嗎?
我有以下字符串:如何獲得特定字符串後的字符串,然後在另一個字符後獲取唯一的字符串?
P = 1A測試$ A123
我需要一個正則表達式只得到了 「A123」,考慮以下因素:
有什麼想法嗎?
你的正則表達式的表達應該是這樣的:p=.*\$(\w+[0-9]*)
p= matches the p=
.* matches any character greedily
\$ matches the $
(\w+[0-9]*) matches a capture group: \w+ (a group of least one characters) followed by [0-9]* (a group of numbers (optional))
更改[0-9] *爲[0-9] +,如果有應至少一個數字後,之後的字符$。
使用捕獲組:
的Javascript:
'a=3$bcc,p=1A Testing$A123'.match(/p=.*\$(\w+)/)[1]
// => "A123"
的Python:
>>> import re
>>> re.search(r'p=.*\$(\w+)', r'a=3$bcc,p=1A Testing$A123').group(1)
'A123'
使用Javasript:
var s = 'p=1A Testing$A123';
var m = s.match(/p=[^$]*$(.*)$/);
// ["p=1A Testing$A123", "A123"]
// use m[1]
這應該工作:
/^\p=[^$]*\$[A-Z]\d+$/
.*?p=[^$]*\$([a-z].*)$
更改捕獲組([a-z].*)
與您要使用的輸入端與一個模式匹配。
例如,
([a-z]\d*)
:由[A-Z]接着小數0次或更多次的序列開始。([a-z]\d{3})
:以[a-Z]開頭,後面跟着一個精確的3位小數序列。
你使用哪種語言? – falsetru