当前位置: 首页 > 面试题库 >

正则表达式不能以点开头或以点结尾

洪飞驰
2023-03-14
问题内容

我需要一个不以点开头或不以开头的正则表达式[-_.]

正则表达式有效,但在第一个条件下失败;它不以点开头:

^[A-Za-z0-9][^.]*[^-_.][A-Za-z0-9]$

例如:test.com应为有效字符串,但失败。


问题答案:

从上一个问题开始,您应该可以使用:

^[^.].*[^-_.]$

但是,如果您希望能够匹配1个字符串,则需要否定先行:

^(?![.])(?!.*[-_.]$).+

而且,如果您也想匹配空字符串,只需使用*代替即可+

^(?![.])(?!.*[-_.]$).*


 类似资料:
  • 问题内容: 我正在建立正则表达式以检查单词是否以或或开头,我的代码如下, 它打印。我还检查了Regex之后的 stackoverflow,以测试字符串是否以http://或https://开头 正则表达式似乎是正确的,但为什么不匹配?我甚至尝试和 问题答案: 您需要在此处进行 完整的输入 匹配。 编辑 :(基于@davidchambers的评论)

  • 问题内容: 如何在Java正则表达式中表示“无前缀”?例如,我只想搜索“:”,但仅在它不直接以“ \”开头时。我怎样才能做到这一点? 问题答案: 在后面使用负数: 四个反斜杠的原因是: 反斜杠是正则表达式中的特殊字符,因此您需要正则表达式来匹配单个反斜杠。 必须在Java字符串中对反斜杠进行转义,因此上述每个反斜杠必须都写为,总共为四个。 示例代码: 输出:

  • 在使用带有xpath的正则表达式时,我对jayway jsonpath有意见。以下是我的json: 下面是我的表达式:resources[?(/_test1.CREDITPRINTFILE/.test(@.name))] 我得到以下错误: 我也尝试在在线评估工具中使用同样的表达:https://jsonpath.herokuapp.com/ Jayway-给出了相同的错误-预期路径节点Gatlin

  • 问题内容: 我有一串 字符串1 (不包括引号)->“我的车号是# 8746253 ,这实际上很酷” 条件-数字8746253可以是任意长度,并且 -数字也可以紧跟在行尾。 我要分组 8746253 ,不应在其后加上点“”。 我努力了, 。#(\ d +)[^。]。 这可以肯定地得到我的数字,但是即使有一个点也可以匹配,因为[。^]将匹配数字的最后一位(例如,在下面的情况下为 3 ) 字符串2 (不

  • 问题内容: 因此,我对 正则表达式 完全 陌生 ,并且正在尝试使用Java 来查找输入字符串中的标点符号。我不知道会提前得到哪种标点符号,只是(1)!,?,。,…都是有效的标点符号,以及(2)“ <”和“>”表示特殊含义,并且不算作标点符号。该程序本身会伪随机地构建短语,我想在它经历随机过程之前先删除句子结尾处的标点符号。 我可以用任何标点符号匹配整个单词,但匹配器只为我提供该单词的索引。换一种说

  • 问题内容: 首先,我阅读以下文档 http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html 而且我想找到除@’之外的任何标点符号,但我不太了解。 这是 : 结果是没有匹配。 是否有任何不匹配? 谢谢 MRizq 问题答案: 您要匹配两个字符,而不是一个。使用(负)前瞻应解决以下任务: