使用正则表达式查找字符模式

Posted

技术标签:

【中文标题】使用正则表达式查找字符模式【英文标题】:Find character pattern using regex 【发布时间】:2016-08-16 17:30:07 【问题描述】:

我正在尝试查找所有出现的特殊字符 / 由字母或数字包围。

经过多次尝试,我想出了以下正则表达式,几乎可以满足我的需要:

(?![a-z0-9])\/(?=[a-z0-9])

这适用于这些示例:

aa/aa
123/123
aa/123

但是,如果两个正斜杠在一起,则失败:

http://regexr.com/

在这种情况下,它匹配 http 之后的第二个正斜杠,这是我不想要的。

如何修改此正则表达式以满足我的需要?

编辑:当两个正斜杠在一起时,我确实想要匹配。如果单个正斜杠被字母数字字符包围,我只想匹配。

【问题讨论】:

那么您希望结果是http://regexr.com/ 未被检测为匹配项? 【参考方案1】:

您需要一个积极的后向小组,如下所示:

(?<=[a-z0-9])+\/1(?=[a-z0-9]+)

但是,根据http://regexr.com/,javascript 不支持它。

在例如蟒蛇http://pythex.org/

【讨论】:

【参考方案2】:

简单!

(?![a-z0-9])\/+(?=[a-z0-9])

您应该将+ 设置为 1 更多出现的字符。所以你应该写\/+ 而不仅仅是\/

【讨论】:

【参考方案3】:

试试这个

(!?[a-z0-9])\/(?=[a-z0-9])

【讨论】:

【参考方案4】:

试试这个

[a-z0-9](\/)[a-z0-9]

Regex demo

说明:( … ):捕获组sample\:转义特殊字符sample

【讨论】:

以上是关于使用正则表达式查找字符模式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式查找字符串模式

正则表达式实战

在正则表达式的模式中查找字符

在字符串列表中查找特定模式(正则表达式)(Python)

php正则表达式

正则表达式