查找非后跟非单词字符的斜杠

时间:2015-01-21 09:26:50

标签: regex

我正在尝试编写一个正则表达式,用于查找斜杠,但后面没有特殊字符。

例如,如果字符串是,

/PErs/@loc/g/2,然后我的正则表达式应该找到/Pg之前的斜杠(2)。它不应该在@之前返回斜杠,因为@是一个特殊字符。 我可以写\/\w,但它会返回/P/g/2

3 个答案:

答案 0 :(得分:3)

使用单词边界\b最简单。

\/\b

\b匹配单词字符和非单词字符。

DEMO

答案 1 :(得分:2)

您想使用lookahead operator

正向前瞻或检测(前方)后是否存在某些内容

请尝试使用此正则表达式:

\/(?=\w)

DEMO

我们在这里使用正向前瞻操作符(?=)。它将“检测”给定表达式的位置但与表达式不匹配。

否定前瞻或检测(前方)之后是否存在某些内容

或者,您也可以使用负向前瞻操作符(?!)

\/(?![@])

DEMO

具有多个特殊字符的负前瞻

这将匹配任何/ NOT后跟@。如果您有更多特殊字符,只需将它们添加到字符类中即可。

例如,如果#%是特殊字符,则上面的正则表达式将成为:

 \/(?![@#%])

DEMO

答案 2 :(得分:1)

匹配斜杠后跟非单词字符与后跟单词字符不相同。

尝试使用:

/(?!\W)

匹配slashes NOT followed by NON word character

它匹配字符串中的最后一个斜杠:PErs/