regex 正则表达式用于特定数字,忽略其他数字

r9f1avp5  于 2023-10-22  发布在  其他
关注(0)|答案(3)|浏览(165)

RegEx(POSIX)
我想从我的文本中抽出一个特定的数字,忽略其他数字。
比如我对'55'感兴趣,但想忽略2055,555,0550等。
令人沮丧的是,我不能可靠地说出数字的开头或结尾是什么。如果是“55”、“:55”、“55”、“55”等,则为未知。我只能假设它不是一个数字(或者根本不是)。
谢谢你,谢谢

cyej8jka

cyej8jka1#

正则表达式中有一个特性,可以将搜索字符串限制为该字符串,并且仅限于该字符串。
要做到这一点,您必须将\<作为前缀,并将\>追加到您正在搜索的字符串中。
在本例中,您将使用\<55\>作为搜索字符串。
你需要有反斜杠包括在内。

yvgpqqbh

yvgpqqbh2#

^(.*[^\d])?55([^\d].*)?$

这将接受任何包含55的数字,使得55不与任何其他数字相邻。例如,它将接受:

1: 55

但不

Num: 556

这样,这行中就可以有其他数字,只要数字55本身存在于某个地方。

ie3xauqp

ie3xauqp3#

你可以像这样使用负后向和负前向

(?<!\d)(55)(?!\d)

Demo
说明:

(?<!            # Negative Look-Behind
  \d            # <digit 0-9>
)               # End of Negative Look-Behind
(               # Capturing Group (1)
  55            # "55"
)               # End of Capturing Group (1)
(?!             # Negative Look-Ahead
  \d            # <digit 0-9>
)               # End of Negative Look-Ahead

相关问题