Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 中间不包含子字符串的匹配字符串_Javascript_Regex - Fatal编程技术网

Javascript 中间不包含子字符串的匹配字符串

Javascript 中间不包含子字符串的匹配字符串,javascript,regex,Javascript,Regex,问题是如何匹配一个不具有未缩放点的带分隔符的子字符串 我有用点隔开的单词。转义点不是分隔符 这种情况下使用通配符的示例模式是asd.*.xyz。看看下面的例子: 我想将其与(转义)匹配: 或 但是我不想匹配这个(当没有转义时): 斜杠后面没有点,只是一个字符 我试着使用消极前瞻: ^asd\.(?:(?![^\\]\.).)*\.xyz$ 但在这种情况下,最后一个逃逸点不允许它工作。如何实现这一点?您需要匹配任何文本,如果有任何点,您希望该点前面带有反斜杠。你可以用 ^asd\.[^.\\]*

问题是如何匹配一个不具有未缩放点的带分隔符的子字符串

我有用点隔开的单词。转义点不是分隔符

这种情况下使用通配符的示例模式是
asd.*.xyz
。看看下面的例子:

我想将其与(
转义)匹配:

但是我不想匹配这个(当
没有转义时):

斜杠后面没有点,只是一个字符

我试着使用消极前瞻:

^asd\.(?:(?![^\\]\.).)*\.xyz$

但在这种情况下,最后一个逃逸点不允许它工作。如何实现这一点?

您需要匹配任何文本,如果有任何点,您希望该点前面带有反斜杠。你可以用

^asd\.[^.\\]*(?:\\.[^.\\]*)*\.xyz$

  • ^asd\.
    -字符串开头,然后是
    asd.
  • [^.\]*(?:\..^.\]*)*
    -0个或多个字符,而不是
    \
    ,然后是任何转义序列的0个或多个重复(
    \.
    ),然后是0个或多个字符,而不是
  • \.xyz$
    -
    字符串末尾的.xyz

另一种编写模式的方法是
^asd.(?:\.[^.\\]]*.xyz$
(请参阅),但效率稍低。

试试
^asd(?:..\w+.*..xyz$
,请参阅。我不能使用
\w
,因为内容可以是任何内容。那么为什么不
^asd.\\\\\\\\.*.*.xyz$
?例如,请参见。
asd.qwe\ert.xyz
,不匹配。我想我不清楚。这里的斜线是为了避开圆点。
asd.qwe.ert.xyz
^asd\.(?:(?![^\\]\.).)*\.xyz$
^asd\.[^.\\]*(?:\\.[^.\\]*)*\.xyz$