正则表达式选择单词中仅包含数字的符号

问题描述 投票:0回答:1

无法创建选择数字之间的“X”符号且单词不包含其他字母或“X”位于单词的第一个或最后一个位置的正则表达式。例子:

  1. test123X123test - 不应该找到 X,因为单词中有字母
  2. 测试 123X123 测试 - 应该找到 X,因为单词中没有字母(X 除外)
  3. 123X123 测试 - 应该找到 X
  4. 测试 123x123 - 应该找到 X
  5. 123X - 不应该找到 X,因为 X 位于最后一个位置
  6. X123 - 不应该找到 X,因为 X 位于第一位

我想知道是否有人可以帮助我。顺便说一句,我使用 ruby,所以正则表达式必须与它一起使用。

regex
1个回答
0
投票

使用 grep,你可以使用这样的东西

grep -Ei "(\s|^)[0-9]+X[0-9]+(\s|$)" test

结果

$ grep -Ei "(\s|^)[0-9]+X[0-9]+(\s|$)" list 
test 123X123 test
123X123 test
test 123x123

解释

  • (\s|^)
    将匹配空格或行首
  • [0-9]+X[0-9]+
    将匹配数字之间的 X
  • (\s|$)
    将匹配空格或行尾
© www.soinside.com 2019 - 2024. All rights reserved.