使用正则表达式仅获取某个字符(#)之后的数字[关闭]
Posted
技术标签:
【中文标题】使用正则表达式仅获取某个字符(#)之后的数字[关闭]【英文标题】:Get only numbers after a certain character (#) with regex [closed] 【发布时间】:2018-12-08 10:35:50 【问题描述】:我有以下字符串:
#35+#36+#37+#38+#39+#40+#46+#47+#48+#49+#50+#51
如何在#
之后只获取数字。
另外,我怎样才能得到前面没有#
的任何数字?
【问题讨论】:
正则表达式使用哪种语言? Bash、Perl、Python?尝试更具体。 请阅读How to Ask。您应该向我们展示您已经尝试/研究过的内容。 它在 php 中,我一直在玩regexr.com,但没有成功。这周学习了正则表达式,打算在这个周末学习它。只是我今天需要这段代码 【参考方案1】:要匹配以#
开头的数字,请使用(?<=#)\d+
(正向后视
对于#
,然后是一个非空的数字序列)。
要匹配前面没有#
的数字,请使用(?<!\d|#)\d+
(负向回溯)。
然而,这次“禁止”前面的字符是 #
或数字。
当然,将这两种模式都与g
(全局)选项一起使用。
如果你想处理所有数字是一个单循环并且在这个
循环检测,号码前面是否有#
,可以用另一个
选项,即(#?)(\d+)
。
此模式包含 2 个组:
可选#
和
一个数字序列。
然后,处理每个匹配项,从第 2 组读取数字并检查第 1 组,
是否包含#
。
【讨论】:
以上是关于使用正则表达式仅获取某个字符(#)之后的数字[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用正则表达式从字符串中删除字符串和特殊字符并仅显示不带逗号的数字?