我有正則表達式字符串,我想分類,這是正則表達式有固定的前綴還是沒有。正則表達式固定前綴
例如:
abcdef.*g[0abc]{0,5}hi
具有前綴abcdef
]1234vac.*12345
已前綴]1234vac
(abc)+123
具有前綴abc
但
[A-z]+12345
不具有固定的預修復(它從A-Z的未知數量的符號開始)
我真的明白這個問題不會以一般形式解決嗎?
我有正則表達式字符串,我想分類,這是正則表達式有固定的前綴還是沒有。正則表達式固定前綴
例如:
abcdef.*g[0abc]{0,5}hi
具有前綴abcdef
]1234vac.*12345
已前綴]1234vac
(abc)+123
具有前綴abc
但
[A-z]+12345
不具有固定的預修復(它從A-Z的未知數量的符號開始)
我真的明白這個問題不會以一般形式解決嗎?
試試這個正則表達式:
^(
( # GENERAL before . (Dot)
(?!\w+\?) # DO NOT MATCH if contains ?
[\w\]\)]+ # Word, ] or) characters 1 or more times
)|
(?:\((\w+)\))| # Words in between BRACKETS()
( # BEFORE . (Dot) with ?, * or +
[\w\]\)]+ # Select Characters
(?![?*+]) # DO NOT select last character if there is ?, * or + after it
)
)
告訴我不工作的任何其他的例子,我會改變這種情況。我已經在你的問題的所有例子進行了測試,並且評論
另外,怎麼可能拿出一個問題這個複雜! ;)
棒極了!您的解決方案並不涵蓋所有情況,但它看起來像我想要的。 –
@DenisGavrus如果你告訴我它沒有覆蓋什麼,我可以改變它。另外,如果它回答了你的問題,你是否介意接受它? – Druzion
我認爲它通常使用正則表達式解決這個問題的機會不大,因爲它有很多情況下,逃脫了特殊字符和其他(它會是完美的前綴'http:\/\/stackoverflow \ .com'從正則表達式'http:\/\/stackoverflow \ .com \ /.*?\/[\ d] +'但我明白這幾乎不可能通過正則表達式(我的任務不是解析url,它只是一個例子))例如,你的解決方法是從正則表達式'abc'(abc)* ',但它不是前綴,因爲'(abc)?'也會重複原因* - {0,}。但是,無論如何,如果我沒有得到任何其他答案,我會在晚些時候接受你的回答。 –
你想從這些字符串中獲取前綴嗎? – Shafizadeh
@Shafizadeh,是 –
,前綴是以'。'結尾的任何內容? – Divisadero