2017-10-18 2979 views
-3

例如,这是我的字符串“RL5XYZ”,我想检查第三个字符是5还是其他数字。 我想用正则表达式来做这件事,没有子串。正则表达式匹配第三个字符

+0

将它永远是第三个字符? – hungrykoala

+0

堆栈溢出不是一个免费的代码写入服务,请显示你的代码/努力和实际问题是什么。 – Cerbrus

回答

-1

如果它总是要被检查的两个字符,然后用5的存在,然后其次是别的东西,那么你可以简单地检查

/..5*/

如果你想获得第三个字符(假设它总是一个数字),那么你可以使用。

/..(\d)*/

你会得到结果,从正则表达式这样回:

Match 1 Full match 0-3 `RL5` Group 1. 2-3 `5` Match 2 Full match 3-5 `XY`

+0

请不要在明显的主题/坏问题上张贴答案! [见:**应该建议关闭主题问题吗?**](// meta.stackoverflow.com/q/276572) – Cerbrus

+0

/..(\d)*/这会给R0a0XYZ提供3个匹配项 –

+0

谢谢,代码唯一的,你的解释帮助我,现在我的最终Regex看起来像这样: **/^ \ d {2} 5 \ w {7}/** – perija

0

如果你想查询字符串的第三个字符是一个数字,您可以使用下面的正则表达式:

/^..[0-9]/ 
  • ^意味着匹配必须出现在字符串的开始
  • 。手段匹配任何字符(我们这样做两次)
  • [0-9]手段匹配0-9范围内的数字字符。你实际上可以调整这是一个不同的范围。

您也可以使用下面的符号

/^.{2}[0-9]/ 

括号中的数字基本上意味着重复以前的操作两次凝结.

您还可以将字符集[0-9]重写为\ d。

/^.{2}\d/ 

以匹配JS,针对您所创建的模式简单调用exec:

/^.{2}\d/.exec('aa3' )// => [“AA3 ”指数:0,输入: “AA3”] /^.{2}\d/.exec('aaa')// =>空

+0

请不要在明显的主题/不良问题上发表回答! [见:**应该建议关闭主题问题吗?**](// meta.stackoverflow.com/q/276572) – Cerbrus

-1
var input = 'RL5XYZ'; 
var position = 3; 
var match = '5'; 

position--; 
var r = new RegExp('^[^\s\S]{'+position+'}'+match); 

console.log(input.match(r)); 

位置以检查是寻找和匹配找什么

编辑:我忘了^

+0

[^ \ s \ S] {3}表示没有空格且没有非空白。这将永远不会匹配任何 –

+0

你尝试过吗? @LeonhardTriendl – ZiTAL

+0

我们不关心前两个职位,我们关心第三个职位,在此之前我休息1个职位 – ZiTAL

-1

如果你想检查第三个字符是一个数字,您可以使用

.{2}\d.* 

不过。匹配一切,所以也许你更喜欢:

\w{2}\d\w* 

\w{2}指这[a-zA-Z0-9_]两倍。 \d指任何数字 \w*指的[a-zA-Z0-9_]零次或多次

相关问题