目標:在較大的字符串內爲固定長度字符串建立廣義正則表達式。該字符串具有指定的填充字符,後跟一個增量的整數計數器。理想情況下,有一些方法可以說:「我希望這個團隊長度爲10,並且只包含一種類型的角色,然後是不同的角色。」具有填充的特定長度正則表達式
我試圖可變數據內匹配這個(可以是數字可能是字母可能是符號): 的填充字符+數字加起來到指定長度,這裏將是5
這些都是允許的填充+數字組合。
$$$$1
$$$12
$$123
$1234
下面是一個例子:
<variable-data> <padding-characters> <numbers> <variable-data>
............... .................... ddddddddd ...............
(where periods are any characters and 'd' is any digit)
Example Data:
ABC $$$$ 1 [email protected]
Example Regex:
ABC\$*\d+\[email protected]
Match:
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
No Match:
[email protected]
[email protected]
我試了一下:
ABC(?=.{5})\$*\d+\[email protected]
這不工作,因爲它仍然匹配到下一個數字因爲\d+
。我想另一件事是
ABC(?=[\$\d]{5}[^\$\d])(\$*\d+)\[email protected]
旨在停止尋找它遇到一個非數字或非$之後,但是這不是有益的,因爲該字符串的下一部分可以用一個$或數字開頭。
最簡單的正則表達式來解決這個問題:
(\$\$\$\$\d|\$\$\$\d\d|\$\$\d\d\d|\$\d\d\d\d|\d\d\d\d\d)
但我想使這個更廣義的,並且可以有填充量可變E.G.
$$$$$$$$$1
$$$$$$$$12
...
你的意思是整理*變量數據*不會以數字開始? – revo
@revo我不確定在運行前會有什麼。它們都是用戶定義的。他們可以肯定是數字。 –
所以這樣的輸入字符串* ABC $$$$ 11!@ *的可能性存在,它應該匹配? – revo