2013-04-15 440 views
0

我有一個正則表達式中的Java:[^a-zA-Z0-9.-_]形式的Java正則表達式PHP正則表達式

如何形成從java該正則表達式php

+3

在大多數情況下,你可以使用跨regex實現的*同*語法*許多*語言。在這個(雖然很簡單)的情況下,PHP和Java的語法應該是相同的。問:你試過了嗎? – paulsm4

回答

3

在PHP(PCRE)這個正則表達式看起來像

[^a-zA-Z0-9.-_] 

是的,這是完全一樣的

+0

你能否說明明顯的問題? :) – Zim84

0

正是因爲這個特殊的正則表達式相同。

但是你可以用更短:

[^\w.-] 

,不要忘記了 - 字符必須在最後位置在字符類放在

+0

僅適用於C語言環境。 –

+0

@ M8R-1jmw5r:默認速記字符類('\ w','\ d','\ s')僅包含ASCII字符,與locale無關。見http://pcre.org –

0

這是完全一樣的你可能需要在其周圍放置分隔符,例如括號:

([^a-zA-Z0-9._-]) 

查看將負號移動到最後的小差異。那是因爲[.-_]匹配./0...9:;<=>[email protected][\]^_。我想你不會因爲你已經有0-9和A-Z覆蓋而期待這個否定。

+0

你應該爲自己做一個忙,並使用其他字符(例如'〜','#')作爲分隔符,這樣你就不會混淆(和其他人)是分隔符還是捕獲組。 – nhahtdh

相關問題