当前位置: 首页 > 面试题库 >

正则表达式以匹配不带点号的数字(“。”)

苏鸿羽
2023-03-14
问题内容

我有一串

字符串1 (不包括引号)->“我的车号是# 8746253 ,这实际上很酷”

条件-数字8746253可以是任意长度,并且
-数字也可以紧跟在行尾。

我要分组 8746253 ,不应在其后加上点“”。
我努力了,

#(\ d +)[^。]。

这可以肯定地得到我的数字,但是即使有一个点也可以匹配,因为[。^]将匹配数字的最后一位(例如,在下面的情况下为 3

字符串2 (不包括引号)->“地球距离# 8746253.Kms ,非常远”

我只想匹配 字符串1 类型,而不匹配 字符串2 类型。


问题答案:

要匹配之后#不带点的任何数字,请使用

(?<=#)\d++(?!\.)

++是一个所有格量词,它将使正则表达式引擎仅(?!\.)在最后一个匹配的数字之后才检查前瞻,并且如果后面有一个点,则不会回溯。因此,如果在数字块的最后一位数字之后有一个数字,则整个比赛将失败。

参见正则表达式演示

为了匹配整行并将数字放入捕获组#1:

.*#(\d++)(?!\.).*

请参阅此正则表达式演示。或没有前瞻性的版本:

^.*#(\d++)(?:[^.\r\n].*)?$

参见另一个演示。在最后一个版本中,数字块只能跟随一个 可选 字符 序列
,该字符不是a .,CR和LF,其后是除换行符((?:[^.\r\n].*)?)外的任何0+字符,然后是字符串($)的末尾。



 类似资料:
  • 我正在尝试匹配以下正则表达式: 换句话说,一个单词边界后跟上面的任何字符串(可选地跟一个句点字符),后面跟一个单词边界。 我也在regex101上尝试过这一操作,但与数仍然不匹配:https://regex101.com/r/klkmwl/1 转义符并没有什么区别,我已经尝试使用十六进制转义序列来代替和符(如本问题所建议的)。为什么这不匹配?

  • 问题内容: 匹配字符串中的’(’的正则表达式是什么? 以下是场景: 我有一串 我想使用正则表达式拆分字符串。为此,我正在使用 但是我收到以下异常。 转义似乎不起作用。 问题答案: 两种选择: 首先,你可以使用转义 回 斜线- 另外,由于它是单个字符,因此您可以将其放入不需要转义的字符类中-

  • 我正在使用这段代码使用正则表达式拆分字符串 该代码适用于我拥有的几乎所有字符串,但我面临着这两个字符串的问题:和。似乎模式不匹配,我认为是因为特殊字符和。 我的预期结果和。

  • 问题内容: 我正在使用模块中的函数来匹配某些东西,并且一切正常。 现在,我需要找出我有多少场比赛。是否可以不两次遍历迭代器?(先找出计数然后是真正的迭代) 一些代码: 一切正常,我只需要在循环之前获取匹配数即可。 问题答案: 如果您知道需要所有匹配项,则可以使用该功能。它将返回所有匹配项的列表。然后,您可以只进行匹配次数。

  • 出于某种原因,上面的正则表达式没有捕捉带撇号的名称。 例如:D'STALL先生不匹配。任何关于regex模式的帮助都将不胜感激。 代码所做的是获取输入并用XML标记它。诸如以下内容: 正则表达式与上述段落不匹配。

  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。