該匹配基於以下,必須與文本之間沒有空格的字符串,但可能具有前導空格/零
- 正是分鐘12或最多13個字符的正則表達式
- 能有前導空格/零
- 在String
沒有空格非全零/空間
正確的匹配: 「ABCDEFGH IJ」 「ABCDEFGHIJKLM」
- 錯誤匹配: 「ABCD IJKL」
該匹配基於以下,必須與文本之間沒有空格的字符串,但可能具有前導空格/零
沒有空格非全零/空間
正確的匹配: 「ABCDEFGH IJ」 「ABCDEFGHIJKLM」
你是說整個字符串必須是12或13個字符長包括領先的空白?這將在最正則表達式的口味工作:
^(?=.{12,13}$)\s*[A-Za-z0-9]+$
我不知道ABAP雖然。我發現的許多搜索結果都表明它支持lookahead,但如果你真的使用POSIX標準regexes,這將不起作用。您可能必須在單獨的測試中進行長度檢查。
UPDATE:爲了防止比賽全零的,你需要添加其他前瞻:
^(?=.{12,13}$)(?!0+$)\s*[A-Za-z0-9]+$
更新2:它只是發生在我身上,你可能不希望字符串像" 000000000"
- 即全零加上領先空格。此正則表達式將涵蓋:
^(?=.{12,13}$)(?!\s*0+$)\s*[A-Za-z0-9]+$
它不會匹配所有空格,因爲'[A-Za-z0-9] +'必須至少匹配一個字母或數字。有關其他要求,請參閱我的更新。 –
你可以使用這個表達式:
^ *[A-Za-z0-9]{12,13}$
謝謝,但我只允許一個領先空間,它應該允許多個領先空間。 「ABCDEFGH」 – user2991913
@ user2991913:你確定它只允許1個空格。我有'^ *'這意味着0或礦石領先空間。 – anubhava
是的,它只允許一個 – user2991913
\s*\b[a-zA-Z0-9]{12,13}\b
這並不需要串上它自己的路線。如果你不真正關心你可以擺脫最初的空白匹配\s*
如果你匹配的字符串是在他們自己的行上,那麼@ anubhava的答案就是你想要的。 – OGHaza
你可以把一些例子(文本分析和文本提取/檢測) –
e.g:「ABCDEFGHIJ」 – user2991913
我相信沒有尾隨空間? –