RegEx(POSIX)我想从我的文本中抽出一个特定的数字,忽略其他数字。比如我对'55'感兴趣,但想忽略2055,555,0550等。令人沮丧的是,我不能可靠地说出数字的开头或结尾是什么。如果是“55”、“:55”、“55”、“55”等,则为未知。我只能假设它不是一个数字(或者根本不是)。谢谢你,谢谢
cyej8jka1#
正则表达式中有一个特性,可以将搜索字符串限制为该字符串,并且仅限于该字符串。要做到这一点,您必须将\<作为前缀,并将\>追加到您正在搜索的字符串中。在本例中,您将使用\<55\>作为搜索字符串。你需要有反斜杠包括在内。
\<
\>
\<55\>
yvgpqqbh2#
^(.*[^\d])?55([^\d].*)?$
这将接受任何包含55的数字,使得55不与任何其他数字相邻。例如,它将接受:
1: 55
但不
Num: 556
这样,这行中就可以有其他数字,只要数字55本身存在于某个地方。
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
3条答案
按热度按时间cyej8jka1#
正则表达式中有一个特性,可以将搜索字符串限制为该字符串,并且仅限于该字符串。
要做到这一点,您必须将
\<
作为前缀,并将\>
追加到您正在搜索的字符串中。在本例中,您将使用
\<55\>
作为搜索字符串。你需要有反斜杠包括在内。
yvgpqqbh2#
这将接受任何包含55的数字,使得55不与任何其他数字相邻。例如,它将接受:
但不
这样,这行中就可以有其他数字,只要数字55本身存在于某个地方。
ie3xauqp3#
你可以像这样使用负后向和负前向
Demo
说明: