2014-01-15 51 views
2

基本上我想在一條線上找到ASCII藝術。對於我來說,這是任何2個字符都不是字母數字忽略空格。因此,一個行可能看起來像:正則表達式在單行上檢測ASCII藝術。

這是一個#測試 - > ASCII藝術檢測@#@ < -

所以比賽我應該得到的是:

!# 

--> 

@#@ 

<-- 

我想出了這個利用其下面的網站進行測試仍然選擇空間:(

\b\W{2,} 

林: http://gskinner.com/RegExr/

感謝您的幫助,非常感謝!

回答

3

我建議是這樣的:

[^\w\s]{2,} 

這將匹配的兩個或多個字符是字字符(包括字母數字和下劃線)或空白字符的任意序列。

Demonstration

如果你也想匹配下劃線爲您的 'ASCII藝術' 的一部分,你必須要更加具體:

[^a-zA-Z0-9\s]{2,} 

Demonstration

+0

+1這就是我要做的。 – Aust

+0

實際上,如果它的'ascii'藝術是他感興趣的,那麼它不會將匹配限制爲ascii。 – sln

+0

@sln如果文件/文本OP的搜索是ASCII,則會這樣。但是,是的,這是一個合理的點。 –

0

我覺得這

((?=[\x21-\x7e])[\W_]){2,}

大概equavalent這個

[[:punct:]]{2,}

使用POSIX,支持標點符號:
(添加更多的,只需將其添加到類[[:punct:]<add here>]{2,}

33 =!
34 =「
35 =#
36 = $
37 =%
38 = &
39 ='
40 =(
41 =)
42 = *
43 = +
44 =,
45 = -
46 =。
47 =/
58 =:
59 =;
60 = <
61 = =
62 =>
63 =?
64 = @
91 = [
92 = \
93 =]
94 =^
95 = _
96 =`
123 = {
124 = |
125 =}
126 =〜