Pattern p = Pattern.compile("[\\w\\.]+\\sat\\s[\\w\\.]+");
將從一個網頁符合以下三條線:如何指定在正則表達式中至少有一個角色類中某個角色的出現?
dave.andersen at gmail.com
appear at SOSP
staring at now
不過,我只是想匹配的第一行。有沒有辦法指定at
兩邊至少有一個dot
?
Pattern p = Pattern.compile("[\\w\\.]+\\sat\\s[\\w\\.]+");
將從一個網頁符合以下三條線:如何指定在正則表達式中至少有一個角色類中某個角色的出現?
dave.andersen at gmail.com
appear at SOSP
staring at now
不過,我只是想匹配的第一行。有沒有辦法指定at
兩邊至少有一個dot
?
你用「+」來表示,在獲得正確的想法取代它至少一個,但使用「[\ w \。] +」匹配任何字符或句點字符串。
這將匹配喜歡的東西 「在foo.bar foo.bar」 或 「富....欄foo..bar」:
Pattern p = Pattern.compile("\\w+\\.+\\w+\\sat\\s\\w+\\.+\\w+");
這將匹配像「foo.bar東西foo.bar」或 「在foo.bar.bar foo.foo.bar」:
Pattern p = Pattern.compile("\\w+\\.[\\w\\.]+\\sat\\s\\w+\\.[\\w\\.]+"
之間的差 「W + \ + \ \ W +」 和 「[\ W \。] +」 是。第一種形式將匹配至少一個單詞字符,後跟至少一個句點,後跟至少一個單詞字符,而第二種形式將匹配單詞字符和句點的任意混合。
\w+\.\w+\s+at\s+\w+\.\w+
比賽
dave.andersen在gmail.com
但不是:
出現在SOSP
或:
盯着現在
編輯:
\w+\.[\w\.]+\s+at\s+\w+\.[\w\.]+
比賽data.anderson at gmail.com
和my.fair.lady at gmail.com
可能是你可以試試這個
\w+\.\w+\sat\s\w+\.\w+
這將確保「。」出現在單詞之間。
這裏是重新定義的版本,前後只有一個點匹配「的」
你可以用
^[a-zA-Z0-9]+\.[a-zA-Z0-9]+\sat\s[a-zA-Z0-9]+\.[a-zA-Z0-9]+$
但它也可能有不止一個點:) –
我的意思是至少出現一次,而不是隻有一個:) –