使用正则表达式查找字符模式
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
【讨论】:
以上是关于使用正则表达式查找字符模式的主要内容,如果未能解决你的问题,请参考以下文章