如何获取导致reg表达式不匹配的第一个字符

用户名

我们有一个非常复杂的正则表达式,用于检查字符串结构。

我想知道是否有一种简单的方法来找出导致reg表达式不匹配的字符串中的哪个字符。

例如,

 string.match(reg_exp).get_position_which_fails

基本上,这个想法是当状态机放弃时如何获得状态机的“位置”。

这是一个正则表达式示例:

%q^[^\p{Cc}\p{Z}]([^\p{Cc}\p{Zl}\p{Zp}]{0,253}[^\p{Cc}\p{Z}])?$
塔德曼

简短的答案是:

长答案是正则表达式是一个复杂的有限状态机,可能处于试图同时匹配多个不同可能路径的状态。如果不构造允许部分匹配的正则表达式,则无法从正则表达式中获得部分匹配。

如果要允许部分匹配,请重新设计您的表达式以支持它们,或者使用更手动的方法编写一个解析器以逐步遍历字符串。

如果您要解决的表达式特别困难,可以尝试使用Ragel自动生成其中之一

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

匹配正则表达式中的第一个字符?

来自分类Dev

使用正则表达式获取第一个字符

来自分类Dev

Python正则表达式-匹配某些第一个字符,但不匹配W

来自分类Dev

正则表达式匹配不包括第一个字符的字符串

来自分类Dev

如何把 xpages 正则表达式(第一个字符和最后一个字符)不能是特殊字符

来自分类Dev

正则表达式表达大写的第一个字符

来自分类Dev

正则表达式表达大写的第一个字符

来自分类Dev

正则表达式仅匹配第一个字符

来自分类Dev

忽略正则表达式匹配中的第一个字符

来自分类Dev

Javascript正则表达式忽略匹配中的第一个字符

来自分类Dev

正则表达式删除与第一个字符串匹配的行?

来自分类Dev

忽略正则表达式匹配中的第一个字符

来自分类Dev

正则表达式删除与第一个字符串匹配的行?

来自分类Dev

第一个字符出现后的 Python 正则表达式匹配组

来自分类Dev

正则表达式只匹配第一个字符

来自分类Dev

正则表达式模式匹配直到包含特定字符的第一个字符系列之前的第一个空格

来自分类Dev

正则表达式不捕获第一个字符

来自分类Dev

非法第一个字符的正则表达式

来自分类Dev

如何禁止“。” (点)作为正则表达式中的第一个字符

来自分类Dev

在两个字符串(包括第一个字符串)之间匹配的正则表达式

来自分类Dev

使用正则表达式查找出现的内容,然后仅删除匹配表达式中的第一个字符

来自分类Dev

正则表达式替换特定匹配项的字符串的第一个和最后一个字符

来自分类Dev

正则表达式匹配字符串的第一个和最后一个字符,但是为什么呢?

来自分类Dev

正则表达式替换特定匹配项的字符串的第一个和最后一个字符

来自分类Dev

如何匹配正则表达式中的第一个字符串,然后在正则表达式中运行另一个递归模式?

来自分类Dev

正则表达式匹配第一个和最后一个字符

来自分类Dev

正则表达式匹配第一个和最后一个字符

来自分类Dev

正则表达式替换所有匹配项,但不替换第一个和最后一个字符

来自分类Dev

C#正则表达式,匹配但不包括匹配字符串之前的第一个字符

Related 相关文章

  1. 1

    匹配正则表达式中的第一个字符?

  2. 2

    使用正则表达式获取第一个字符

  3. 3

    Python正则表达式-匹配某些第一个字符,但不匹配W

  4. 4

    正则表达式匹配不包括第一个字符的字符串

  5. 5

    如何把 xpages 正则表达式(第一个字符和最后一个字符)不能是特殊字符

  6. 6

    正则表达式表达大写的第一个字符

  7. 7

    正则表达式表达大写的第一个字符

  8. 8

    正则表达式仅匹配第一个字符

  9. 9

    忽略正则表达式匹配中的第一个字符

  10. 10

    Javascript正则表达式忽略匹配中的第一个字符

  11. 11

    正则表达式删除与第一个字符串匹配的行?

  12. 12

    忽略正则表达式匹配中的第一个字符

  13. 13

    正则表达式删除与第一个字符串匹配的行?

  14. 14

    第一个字符出现后的 Python 正则表达式匹配组

  15. 15

    正则表达式只匹配第一个字符

  16. 16

    正则表达式模式匹配直到包含特定字符的第一个字符系列之前的第一个空格

  17. 17

    正则表达式不捕获第一个字符

  18. 18

    非法第一个字符的正则表达式

  19. 19

    如何禁止“。” (点)作为正则表达式中的第一个字符

  20. 20

    在两个字符串(包括第一个字符串)之间匹配的正则表达式

  21. 21

    使用正则表达式查找出现的内容,然后仅删除匹配表达式中的第一个字符

  22. 22

    正则表达式替换特定匹配项的字符串的第一个和最后一个字符

  23. 23

    正则表达式匹配字符串的第一个和最后一个字符,但是为什么呢?

  24. 24

    正则表达式替换特定匹配项的字符串的第一个和最后一个字符

  25. 25

    如何匹配正则表达式中的第一个字符串,然后在正则表达式中运行另一个递归模式?

  26. 26

    正则表达式匹配第一个和最后一个字符

  27. 27

    正则表达式匹配第一个和最后一个字符

  28. 28

    正则表达式替换所有匹配项,但不替换第一个和最后一个字符

  29. 29

    C#正则表达式,匹配但不包括匹配字符串之前的第一个字符

热门标签

归档