gpt4 book ai didi

Java表达式: Not allow single quote in middle or Allow single quote with double back slash

转载 作者:行者123 更新时间:2023-11-30 02:45:34 26 4
gpt4 key购买 nike

我要验证的格式

  1. 以单引号开头(左修剪后)
  2. 以单引号结尾(右修剪后)
  3. 中间:不允许单引号或允许但必须使用双反斜杠转义

示例

'abc' --> valid
'abc\\'def' --> valid
'abc'def' --> invalid

我尝试过的

public static void main(String[] args) {

final Pattern pat = Pattern.compile("\\s*\\'[^']+\\'\\s*", Pattern.CASE_INSENSITIVE);

System.out.println(pat.matcher("'abc'").matches()); // Out: true
System.out.println(pat.matcher("'abc\\'def'").matches()); //Out: false, expected true
System.out.println(pat.matcher("'abc'def'").matches()); // out false
}

我对此规则有疑问:

allow a single quote in middle but it must be escaped by \\

有什么帮助吗?谢谢!

最佳答案

你需要

final Pattern pat = Pattern.compile("\\s*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'\\s*");

请参阅Java demo .

详细信息:

  • \s* - 0+ 个空格
  • ' - 单引号
  • [^'\\]* - 除 '\
  • 之外的 0+ 个字符
  • (?:\\.[^'\\]*)* - 零个或多个序列
    • \\. - 除换行符之外的任何转义字符(添加 Pattern.DOTALL 以匹配包括换行符在内的任何字符)
    • [^'\\]*- 除 '\ 之外的 0+ 个字符
  • ' - 单引号
  • \s* - 0+ 个空格

关于Java表达式: Not allow single quote in middle or Allow single quote with double back slash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40290143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com