java正则表达式 引用_java – 正则表达式检索引用的字符串和引用字符
我有一种语言,它将一个字符串定义为单引号或双引号,通过加倍将字符串转义为字符串中的分隔符.例如,所有以下内容都是合法字符串:
'This isn''t easy to parse.'
'Then John said,"Hello Tim!"'
"This isn't easy to parse."
"Then John said,""Hello Tim!"""
我有一个字符串(上面定义)的集合,由不包含引号的东西分隔.我正在尝试使用正则表达式,是解析列表中的每个字符串.例如,这里是一个输入:
“Some String #1” OR ‘Some String #2’ AND “Some ‘String’ #3” XOR
‘Some “String” #4’ HOWDY “Some “”String”” #5″ FOO ‘Some ”String” #6’
用于确定字符串是否具有这种形式的正则表达式是微不足道的:
^(?:"(?:[^"]|"")*"|'(?:[^']|'')*')(?:\s+[^"'\s]+\s+(?:"(?:[^"]|"")*"|'(?:[^']|'')*')*
运行上面的表达式来测试它是否是一个这样的形式,我需要另一个正则表达式从输入中获取每个分隔的字符串.我打算这样做:
Pattern pattern = Pattern.compile("What REGEX goes here?");
Matcher matcher = pattern.matcher(inputString);
int startIndex = 0;
while (matcher.find(startIndex))
{
String quote = matcher.group(1);
String quotedString = matcher.group(2);
...
startIndex = matcher.end();
}
我想要一个正则表达式捕获组#1中的引号字符,组#2中的引号内的文本(我正在使用Java Regex).所以,对于上面的输入,我正在寻找一个正则表达式,在每个循环迭代中产生以下输出:
Loop 1: matcher.group(1) = "
matcher.group(2) = Some String #1
Loop 2: matcher.group(1) = '
matcher.group(2) = Some String #2
Loop 3: matcher.group(1) = "
matcher.group(2) = Some 'String' #3
Loop 4: matcher.group(1) = '
matcher.group(2) = Some "String" #4
Loop 5: matcher.group(1) = "
matcher.group(2) = Some ""String"" #5
Loop 6: matcher.group(1) = '
matcher.group(2) = Some ''String'' #6
到目前为止我已经尝试过的模式(未转义,随后为Java代码转义):
(["'])((?:[^\1]|\1\1)*)\1
"([\"'])((?:[^\\1]|\\1\\1)*)\\1"
(?")(?(?:[^"]|"")*)"|(?')(?(?:[^']|'')*)'
"(?\")(?(?:[^\"]|\"\")*)\"|(?')(?(?:[^']|'')*)'"
当尝试编译模式时,这两个都会失败.
这样的正则表达式是否可能?
java正则表达式 引用_java – 正则表达式检索引用的字符串和引用字符相关推荐
- java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍
java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...
- java正则表达式对象_Java正则表达式之Pattern类
java.util.regex.Pattern类指正则表达式的编译表示形式.即将你的正则表达式字符串编译成java正则表达式对象.所有的正则表达式字符串在使用前都必须先编译成Pattern类的实例.然 ...
- java 表达式写法_java正则表达式的写法
展开全部 方法/步骤 Java正则表达式正则表达式的语法知识:Java支持Perl 5 正则表达式语法的一个子集.e69da5e6ba903231313335323631343130323136353 ...
- java正则表达式教程_Java正则表达式教程及示例
[感谢 @CuGBabyBeaR 的热心翻译.如果其他朋友也有不错的原创或译文,可以尝试投递到 ImportNew.] 当我开始我的Java职业生涯的时候,对于我来说正则表达式简直是个是梦魇.本教程旨 ...
- java正则表达式原理_Java 正则表达式详解
摘自:http://www.jb51.net/article/16829.htm 许多语言,包括 Perl.PHP.Python.JavaScript和JScript,都支持用正则表达式处理文本,一些 ...
- java 正则表达式过滤_java正则表达式过滤特殊字符
Java用正则表达式 过滤特殊字符,只允许中文.字母Java用正则表达式 过滤特殊字符,只允许中文.字母或数字,该怎么写? String s1="我是正确测试数据aasdf2342343AS ...
- java正则表达式 中括号_Java正则表达式获取中括号之间的内容
不包含中括号 正则表达式如下: \\[(.*?)] 注: .匹配除换行符\n之外的任何单字符: *匹配前面的子表达式零次或多次: ?匹配前面的子表达式零次或一次: ()标记一个子表达式的开始和结束位置 ...
- java正则转义_Java 正则表达式 转义字符
一.这篇文章写的很好,值得看看 两个重点: 1.两次转义 (1)Java 转义(具体规则待学习) Java 中的普通字符串,需要经过 Java 的转义 (2)正则转义(具体规则待学习) Java 代码 ...
- java 汉字个数_java语言中如何获取字符串中汉字的个数
java语言中如何获取字符串中汉字的个数? [实例描述] 字符串中可以包含数字,字母.汉字或者其他字符.使用Character 类的isDigit()方法可以判断字符中的某个字符是否为数字,使用Cha ...
最新文章
- C#:CsvReader读取.CSV文件(转换成DataTable)
- golang 反射_云原生的 Java与Golang
- ADB设置连接android真机
- sae项目服务器,基于SAE的游戏服务器: Server on SAE for RGSS Games
部署在SAE上的简易游戏服务器,为用 RMXP/VX/VA 开发的游戏提供网络服务...
- React开发(225):render中返回的值可以定义为一个方法
- 最优化学习笔记(一)预备知识
- 把txt作为数据源绑定到GridView中
- 最小公倍数和最大公约数的简洁写法
- windows安装numpy库
- YCOJ黑熊过河(C++)
- 加州房价篇 (一) : 了解数据
- 校园卡水卡最低成本破解具体过程(补上上次工具教程)By:dj1149 -02
- 高效率科研神器——小软件、大能量
- java从入门到精通----mysql05
- 360视频:CMP和ACP投影
- Chrome浏览器安装本地插件
- Unity 摄像头实时扫描二维码
- 系统盘的制作和安装系统的操作流程
- 房屋价格预测相关公开数据集
- 单片机设计 测量频率