正则表达式有困难

时间:2014-09-03 21:13:03

标签: regex

这是一个字符串:

111A9d809d4712701eea0e9c2b2c143941ab000
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

9d809d4712701eea0e9c2b2c143941ab每次都会发生变化,但111A000永远不会改变,我需要匹配整个字符串,我尝试使用Google搜索,但很难找到答案对于这样的特殊需求,也有人可以建议我一个网页或一些程序来帮助我解决这些问题。

4 个答案:

答案 0 :(得分:1)

您正在寻找:

111A[a-z0-9]{32}000

或仅用于匹配单词:

\b111A[a-z0-9]{32}000\b

或仅用于匹配整个字符串:

^111A[a-z0-9]{32}000$

或如果中间部分具有随机长度,您可以用“至少一个”(+)替换精确字母数(32)或“可以有任何计数或根本没有”(*):

111A[a-z0-9]+000
111A[a-z0-9]*000
\b111A[a-z0-9]+000\b
\b111A[a-z0-9]*000\b
^111A[a-z0-9]+000$
^111A[a-z0-9]*000$

答案 1 :(得分:0)

大胆的部分?

尝试

111A[a-z0-9]+000

答案 2 :(得分:0)

您可以使用此正则表达式:

/111A\w+?000/g

如果你的模式有32个字符

,那么这个
/111A\w{32}000/g

在这里演示:http://regex101.com/r/cQ7uF1/1

答案 3 :(得分:0)

我建议你买一本好书,例如Jeffrey Friedl 的“掌握正则表达式”,这非常好(http://shop.oreilly.com/product/9780596528126.do)。正则表达式非常有用,但在您开始看到编码的真正好处之前还需要一些投资。

至于你的正则表达式,/^111A[a-z0-9]+000$/可以解决问题(如果你想在字符串前后允许使用字符,可以去掉^和$,根据你的编程语言,你可能需要放弃周围的环境斜线)。