我想找到' 106'。但它不能像21067那样处于更长的数字,也不能像y106M这样的文本字符串。但我也希望找到它,如果它在开头,或行尾,或者它是行。
所以这些行已经出局了:
106M 1106 106in a string is bad even if it starts the line And it may finish with the target but not as the tail of a string106
但这些是:
106 something else another 106 And of couse "106' will work as well I just want 106 to show up but not embedded in other numbers or text but it's OK is the end of the line is 106 106 may also start the line
我尝试了以下搜索字符串及其中的许多变体:
(^ | [^ 0-9A-ZA-Z])106($ | [^ 0-9A-ZA-Z])
我是正则表达式的新手,我可能无法掌握锚字符的工作方式。
答案 0 :(得分:2)
您可以使用\b
字边界断言:
\b106\b
或者更具体地使用lookarounds:
(?<=^|\W)106(?=$|\W)
或者,正如评论中指出的,(?<!\w)106(?!\w)
也有效。或(?<=[^a-zA-Z0-9])106(?=[^a-zA-Z0-9])
工作得更好,因为_
和\w
字符集中包含\W
。